Pet*_*der 5 android activity-recognition activitytransitionapi
我正在使用Transitions API,前 24-48 小时一切正常 - 我从 API 收到身体活动变化,但 24-48 小时后什么也没有。
在 Transitions API Receiver 下,我使用Foreground Service48 小时后仍处于活动状态的接收器。我可以通过查看日志来验证这一点;此外,Location (Fused Location Client)24-48 小时后仍然会有更新,而 Transition API 似乎已经死了。
有人经历过这个吗?我确实认为使用 Worker 重置(取消注册然后再次注册)转换 API 可能是替代方案(每 1-2 小时一次)。不确定这是否有帮助。我有一种感觉,当应用程序进入打瞌睡模式/某种睡眠状态时,就会发生这种情况。
另外,我的前台服务使用exported=false,也许将其设置为true会有帮助?(我希望有人给出答案并解释为什么你应该使用其中之一)
操作系统:安卓12
在具有重要运动传感器的设备上,当设备长时间处于静止状态时,通过停止活动报告来节省电池。一旦设备再次移动,它将恢复。
Google 开发者视频中提到了这一点
运动被视为设备移动,例如倾斜、摇动、旋转或摆动。而且它必须是显着的(而不是小的)运动。你可以用这种方式测试它。
private SensorManager sensorManager;
private Sensor sensor;
private TriggerEventListener triggerEventListener;
...
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
sensor = sensorManager.getDefaultSensor(Sensor.TYPE_SIGNIFICANT_MOTION);
triggerEventListener = new TriggerEventListener() {
@Override
public void onTrigger(TriggerEvent event) {
// Do work
}
};
sensorManager.requestTriggerSensor(triggerEventListener, mSensor);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
398 次 |
| 最近记录: |