活动识别 API 不会连续工作



我正在 2 个应用程序中测试活动识别 API:Google 示例代码和在我的应用程序中实现此代码。

问题是两个应用程序都无法正常识别活动,但几个小时后,意图服务停止,我没有从它们那里得到任何活动识别。

知道为什么即使我已经使用意图服务测试了地理围栏 api,并且它永远不间断地工作,意图服务也会停止吗?

您的意图服务可能会"停止",我会说"入睡",因为:

为了节省电池电量,活动报告可能会在设备处于以下状态时停止 "静止"很长一段时间。一旦设备恢复,它将恢复 再次移动。这仅在支持 Sensor.TYPE_SIGNIFICANT_MOTION硬件。

基本上,大多数具有API>= 20的设备都应该如此。

请在此处找到更多信息。

不幸的是,您只能请求活动更新,并且不可能强制 ActivityRecognitionApi 持续提供当前活动,即使它在某些神秘的"延长时间段"内"静止"。

在我看来,如果ActivityRecognitionApi的这个功能是可配置的,那会方便得多。

即使在清单文件中注册广播接收器,您也需要在 Oreo+ 中动态注册,否则它将不起作用。试试这个。在主活动或 startCommand 中添加此代码 Service.It 对我有用。我也在Android 10上测试了这段代码。工作完美。您无需在清单文件中注册广播接收器。

@Override
    protected void onStart() {
        super.onStart();
        IntentFilter intentFilter=new IntentFilter(Constants.BROADCAST_DETECTED_ACTIVITY);
    intentFilter.addCategory(Intent.CATEGORY_DEFAULT);
        registerReceiver(broadcastReceiver,intentFilter);
    }

最新更新