前言
此篇博客记录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
本文来自博客园,作者:观心静 ,转载请注明原文链接:https://www.cnblogs.com/guanxinjing/p/16698816.html
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。