观心静

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

前言

  此篇博客记录Android设备中各种传感器的使用

重力传感器监听

     val mSensorManager = getSystemService(SENSOR_SERVICE) as SensorManager 
       //重力加速传感器
        val accelerationSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER)
        mSensorEventListener = object : SensorEventListener {
            override fun onSensorChanged(event: SensorEvent) {
                val x = event.values[0]
                val y = event.values[1]
                val z = event.values[2]
                mBinding.xNumValue.text = "x = ${x}"
                mBinding.yNumValue.text = "y = ${y}"
                mBinding.zNumValue.text = "z = ${z}"
            }

            override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) {
            }
        }
        mSensorManager.registerListener(mSensorEventListener, accelerationSensor, SensorManager.SENSOR_DELAY_NORMAL)

传感器数据刷新延迟类型

在上面代码中第一个参数是获取传感器数据的刷新延迟

/** 以最快的速度获取传感器数据 */
public static final int SENSOR_DELAY_FASTEST = 0;
/** 游戏下的获取延迟速度 */
public static final int SENSOR_DELAY_GAME = 1;
/** 界面ui的获取延迟速度  */
public static final int SENSOR_DELAY_UI = 2;
/** 适合屏幕方向的延迟速度*/
public static final int SENSOR_DELAY_NORMAL = 3;

特别注意事项

请注意!传感器的回调数据刷新非常快,基本上是5毫秒到10毫秒之间(取决于你选择的刷新延迟类型),而且这个回调是主线程的。所以在回调方法里进行逻辑处理时,尽量不要做耗时操作,也尽量不要做实例化的逻辑。

其他传感器

         val accelerationSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER)
         val gravitySensor = mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY)
         val orientationSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION)
         val gyroscopeSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE)
         val magneticFieldSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD)
         val linearAccelerationSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION)
         val ambientTemperatureSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE)
         Log.e("zh", "onCreate:重力传感器 = ${gravitySensor} ")
         Log.e("zh", "onCreate:加速传感器 = ${accelerationSensor} ")
         Log.e("zh", "onCreate:方向传感器 = ${orientationSensor} ")
         Log.e("zh", "onCreate:陀螺仪传感器 = ${gyroscopeSensor} ")
         Log.e("zh", "onCreate:磁场传感器 = ${magneticFieldSensor} ")
         Log.e("zh", "onCreate:线性加速度传感器 = ${linearAccelerationSensor} ")
         Log.e("zh", "onCreate:环境温度传感器 = ${ambientTemperatureSensor} ")

 

End

posted on 2022-09-16 09:54  观心静  阅读(219)  评论(0编辑  收藏  举报