当前位置: 首页 > 知识库问答 >
问题:

Google活动识别API调用过于频繁

南宫阳冰
2023-03-14

我试图使用谷歌活动识别API,只在活动发生变化时或大约每30分钟(如果活动没有变化,则为10分钟或更长时间)获取结果。相反,当我调用下面的代码时,我经常在我的IntentService中获得活动识别结果,就像每分钟一样:

ActivityRecognition
            .ActivityRecognitionApi
            .requestActivityUpdates(mGoogleApiClient, 60000 * 30, getSensingServicePendingIntent())
            .setResultCallback(this);

创建PendingContent对象的方法:

private PendingIntent getSensingServicePendingIntent(Integer userLabel) {
    Intent i = new Intent(mContext, SenseDataIntentService.class);

    return PendingIntent
            .getService(mContext, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);
}

获取GoogleApiClient的方法:

 private GoogleApiClient buildGoogleApiClient() {
    mGoogleApiClient = new GoogleApiClient.Builder(mContext)
            .addApi(ActivityRecognition.API)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .build();
    return mGoogleApiClient;
}

我知道官方文件说:

如果另一个应用程序也以更快的速度请求活动更新,则接收活动的频率可能会高于detectionIntervalMillis参数。当活动检测服务接收到当前活动可能改变的信号时,例如如果设备已静止很长一段时间,然后从手机充电器上拔下,它也可以更快地接收更新。

但我只是觉得我更新得太频繁了(即使活动没有改变)。任何解决方案,因为我想节省一些电池排水。

共有1个答案

皇甫飞光
2023-03-14

我想我已经弄明白了。Google Fit是在后台运行的,它一直在关注活动的变化。因此,我也得到了所有这些结果(正如文档中所写的)。

 类似资料:
  • 在最近的Google Play服务更新中,有人对活动识别API有问题吗? 我已经在一个应用程序中实现了它。在5.0更新之前,它工作得非常好。现在,当用户走路或坐着不动时,它会在车内返回:/ 并且根本不返回、或。 我应该知道的活动识别API是否有任何更改? 如果你需要更多的细节,请告诉我。

  • 我将使用google play services活动识别api编写一个应用程序。android开发者网站上的培训是直接进行的,但在过去的几个小时里,我编写了一个简单的应用程序,但没有得到任何结果。更新:实际上,我将在5秒钟的时间间隔内以toast消息的形式显示用户的当前活动(如ActivityRecognitionService-Intent服务中的OnIntentHandler方法所示)。我认为

  • 我试图在项目中使用活动识别来检测用户何时“在车内”。(驾驶)问题是几乎不可能使用它,因为大多数可能的活动经常报告“车内”,即使我已经在办公桌前坐了很长时间,或者只是在家里走来走去。很高兴知道API是如何得出这一结论的。 我认为这个功能有很大的潜力,但现在有些东西显然不起作用。 这是一份每30秒进行一次的最有可能的活动日志,以显示我的意思。坐在办公桌前,4分钟后,我把电话转了几次,结果是“最有可能的

  • 我正在寻找实现这一点的一般设计: 我想注册到ActivityRecognition API,以便在此API不时调用的IntentService中接收定期更新,而我的应用程序中的所有其他内容都是完全非活动的(这里的目标是避免耗尽设备上过多的电池电量)。 问题是,通过新的ActivityRecognition API设计,它与GooglePlayServices客户端绑定,例如: 从逻辑上讲,如果创建

  • 我正在制作一个应用程序,使用ActivityRecognition API跟踪用户在后台的活动,如果用户在指定的时间段(例如1小时)内保持在同一位置,则系统会推送通知,告诉用户散步。我已经实现了活动识别,但仅适用于打开应用程序的情况。显然,Google API客户端需要保持连接才能发送活动更新。我的问题是-对于后台活动跟踪,什么是更好的解决方案: 1)在主活动(或单独活动)中实现警报管理器,该活动

  • 问题内容: 我有一把吉他,我需要我的电脑能够分辨出正在演奏的音符,并识别出音调。可以在python中做到吗,也可以在pygame中做到吗?能够在pygame中做到这一点将非常有帮助。 问题答案: 要识别音频信号的频率,可以使用FFT(快速傅立叶变换)算法。据我所知,PyGame无法记录音频,也不支持FFT转换。 首先,您需要从声卡捕获原始采样数据。这种数据称为PCM(脉冲编码调制)。在Python