我想在用户移动/手机非静止时跟踪传感器数据(加速度计,陀螺仪)。
我能做的事情:
- 使用Sensor Listener监听传感器数据
sensorManager = getSystemService(SENSOR_SERVICE) as SensorManager
val accelerometerSensor =
sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER)
sensorManager.registerListener(
accSensor,
accelerometerSensor,
SensorManager.SENSOR_DELAY_NORMAL
)
- 运行一个前台服务,即使应用程序从最近使用的应用程序中滑出,也始终在后台运行以跟踪传感器。
serviceIntent = Intent(context, SensorService::class.java)
context.startForegroundService(serviceIntent)
- 使用广播监听器,监听启动完成事件,以便在应用程序重新启动时立即启动服务。
但我无法:
- 停止传感器服务,在设备停止移动时收集传感器数据。
- 当用户设备开始移动并收集传感器数据时,启动未运行的传感器。
如何从系统接收“运动开始”和“运动结束”通知/回调,以便我们可以决定启动/结束前台服务。