我正在使用Transitions API,在最初的24-48小时内一切正常-我从API收到体力活动更改,但24-48小时后什么都没有.

在转换API接收器下,我使用的是在这48小时后仍然有效的Foreground Service.我可以通过查看日志(log)来验证这一点;此外,在这24-48小时之后,Location (Fused Location Client)个更新仍在进行,而转换API似乎已经死了.

有没有人经历过这种情况? 我确实认为使用Worker重置(注销然后重新注册)转换API可能是另一种 Select (每1-2小时).不确定这会不会有帮助.我有一种感觉,当应用程序进入睡眠模式/某种睡眠状态时,就会发生这种情况.

另外,我的前台服务使用exported=false,也许将其设置为true会有帮助?(我希望有人给出答案,并解释为什么应该使用其中之一)

OS: Android 12

推荐答案

在具有重要运动传感器的设备上,通过在设备长时间静止时停止活动报告来节省电池.一旦设备再次移动,它将重新开始.

这是在Google Developer Video中提到的

最新情况:

运动被认为是一种设备运动,如倾斜、抖动、旋转或摆动.而且它必须是一个重要的(不是小的)运动.你可以用这种方式进行测试.

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);

Android相关问答推荐

三星上的某些应用程序已禁用通知权限切换

以正确的方式从房间收集流量

编写视觉转型

了解数据加载在Kotlin中的工作原理

在Kotlin Jetpack Compose中点击按钮后启动另一个Android应用程序

Android Jetpack Compose Material3主题配色方案

即使安装了Chrome和YouTube,Android对action_view a YouTube URL的意图也是空的

Jetpack Compose和Android Studio中的普通设计工具有什么不同?

有人能帮我在应用程序上使用模拟位置时避免被发现吗?我已经反编译并粘贴了一个代码,S小文件

react 本机生成失败,出现异常.错误:无法确定';<;宏/>;的类型

如何在Jetpack Compose中实现前后动画?

如何在同一行中滚动自定义布局和惰性列,就好像它们是一个组件一样

Jetpack Compose 如何使一个项目相对于另一个项目垂直居中

如何在 Jetpack Compose 中将文本绘制在另一个对象的中心?

AirDroid Business 如何能够从屏幕截图中排除覆盖?

从活动共享视图模型以使用 hilt 组合函数

ImageBitmap 使用 Glide/Coil 到画布

如何关闭可组合对话框?

Android build gradle 文件版本代码自动递增

重命名列失败的房间自动迁移(NOT NULL 约束失败,生成错误的迁移类)