来自Android中重要运动传感器的误报触发

时间:2018-07-02 20:19:32

标签: android performance android-sensors significant-motion-sensor

我正在开发跟踪用户位置的前台服务。为了节省电池服务请求,每5分钟通过LocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, listener)发出一次位置请求,并且onLocationChanged(Location location)触发后,它会禁用位置监听器LocationManager.removeUpdates(listener)。在此特定项目中,请勿使用Google Play服务,因此请使用LocationManager,这一点很重要。 作为一种额外的省电措施,服务通过SensorManager.registerListener(alistener, accelerometerSensor, SensorManager.SENSOR_DELAY_UI)订阅加速度计事件,以检测设备何时静止并禁用位置更新。这个想法是使用有效运动传感器来再次启用位置侦听器,因此,一旦检测到设备仍然(正常工作),位置侦听器和加速度计侦听器将被禁用并启用有效运动传感器触发。触发器触发加速度计并立即启用位置侦听器。 不幸的是,重要的运动传感器在设置后立即启动(即使手机仍在运行)并按设计被禁用。不幸的是,这种行为扼杀了整个方法。问题是这是设备特定的问题(魅族M6注意,传感器是正常创建的并且不是null)还是整个方法都不对?

0 个答案:

没有答案