标签: significant-motion-sensor

Android defaultSensor TYPE_SIGNIFICANT_MOTION 在 24 小时后返回 null

我有点困惑为什么我的Transitions API解决方案通常在第一天或两天有效,然后停止接收任何更新。我更深入地研究了它,发现了一个线索,其中讨论了我们如何需要SIGNIFICAT_MOTION激活传感器才能唤醒传感器,最终唤醒Transitions API整个解决方案。

我所做的是实现了侦听器,它可以帮助我了解SIGNIFICANT_MOTION传感器何时启用以及何时不启用:

    try {
        boolean request = sensorManager.requestTriggerSensor(triggerEventListener, sensor);
        Timber.e("Transitions API is working. If returns false - device is STILL");
    } catch (IllegalArgumentException exception) {
        sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        sensor = sensorManager.getDefaultSensor(Sensor.TYPE_SIGNIFICANT_MOTION);

        Timber.e("SensorManager - " + sensorManager + ", sensor - " + sensor); //TODO: Later delete
    }
Run Code Online (Sandbox Code Playgroud)

现在,如您所见,每当此代码抛出异常时,我都会尝试重新初始化传感器,以确保稍后在应用程序中不会抛出异常。日志显示sensor is null

当传感器在一两天后变为空时(第一天它运行良好并且设备正确返回传感器值),除了重新启动设备之外,没有其他方法可以解决问题。

问题:为什么sensorManager.getDefaultSensor(Sensor.TYPE_SIGNIFICANT_MOTION);第一天返回值(传感器),但 48 小时后返回 null 并停止工作?(我相信这会搞乱我的 Transitions API 解决方案,并且是它无法正常工作的根本原因)。

附加信息。

手机:Google Pixel 3A 操作系统:Android …

android activity-recognition significant-motion-sensor activitytransitionapi

6
推荐指数
0
解决办法
373
查看次数