传感器点滴

    技术2022-06-12  51

    SensorThreadRunnable这个线程启动后进入循环,不停地读取传感器的值,并通过ListenerDelegate.onSensorChangedLocked传入已经注册的SensorListener集合sListeners。

    onSensorChangedLocked负责把读取到的值传递给SensorListener,所以,如果读到的值需要校正的话,可以在onSensorChangedLocked里面进行。

     

    其中有一个比较特殊的Listener,WindowOrientationListener。用来控制屏幕在横屏和竖屏之间的转换,看一下这两个数组:THRESHOLDS和ROTATE_TO。

    THRESHOLDS里面存放了一些角度值,ROTATE_TO里面存放的是几个常量。它们是一一对应的,当前机器的角度落在THRESHOLDS的哪个范围内,机器的屏幕就会旋转ROTATE_TO里面对应位置的常量代表的角度。

    THRESHOLDS_WITH_180和ROTATE_TO_WITH_180也是这样的原理。只在允许进行180度旋转时使用。

    比如,想要机器支持四个方向屏幕旋转的话,就要发动这里。


    最新回复(0)