3

STEP_COUNTER 传感器的 Android 文档有点混乱。

据此:Android Sensor doc我应该始终注册 STEP_COUNTER 传感器,否则计步传感器根本不会计数。这一切都很好,并且可以按预期工作,直到我认为 Android 10 传感器事件不再发送到后台应用程序。

因此,我尝试从另一个计步器文档中获取建议,建议使用 JobScheduler 定期读取最后一个值。现在,afaik 无法从传感器获取最新值,我必须像往常一样注册一个 SensorEventListener。

所以,现在我尝试结合这两个建议,始终注册计步器传感器,以便硬件传感器开始计数,因为当我注册我的监听器时我总是得到一个新事件,我试图在 JobScheduler 时注销并重新注册这个监听器已执行,但无论我尝试什么方法,在运行 Android 11 的 Pixel 的后台运行时,我都无法获得最新的步数。

我知道我们有 Google Fit,但对于这种特定情况,如果我可以在 JobScheduler 按照文档中的指示运行时读出最新值,则使用基本计步器就足够了。

任何人都知道这是否仍然可行,或者只是文档没有更新?

4

1 回答 1

1

您的应用应处于前台模式以获取传感器数据。通过将前台通知附加到工作人员(workmanager + setForegroundAsync)对我有用。如果前台服务处于活动状态,我认为您的解决方案也将起作用。

于 2021-06-03T13:21:12.830 回答