Android: 有什么方法可以在应用程序处于后台时从显着运动传感器收集数据吗?

Android: Is there any way to collect data from the Significant Motion sensor when the app is in the background?

我正在尝试实现一个应用程序,该应用程序从 Android 上的显着运动触发传感器收集和存储事件作为 detailed here

我所追求的是一种实现方式,当事件从传感器到达时,应用程序会收集并记录它们,即使应用程序不在前台也是如此。感觉这真的应该是可能的,因为 Activity 识别 API(据我所知依赖于显着运动传感器)通过让我传递一个 PendingIntent 来实现这一点 activity 转换发生。但是 TriggerEventListener 机制要求监听过程是 运行,这几乎不可能在后台执行限制下连续进行。

我错过了什么吗?如果我的应用程序在后台运行,有什么方法可以从这个(据说是低功耗、电池效率高、不需要唤醒锁的)传感器收集数据吗?

在 Android 的较新版本中,您无法再 运行 后台服务,因此当应用程序不在前台时,您无法从设备获取运动传感器数据。欲了解更多信息,请查看 here

但是,您可以考虑使用 JobScheduler. Here's how you can implement 实现类似的行为。

希望对您有所帮助。