Android 传感器(Sensor) 相关知识
时间:2023-02-27 03:00:00
Sensor 记录传感器相关知识点
SensorManager
-
概要:
SensorManager 是一个系统服务,您可以访问设备传感器
The sensor manager is a system service that lets you access the device sensors.
-
获取方式:
通过获取 SENSOR_SERVICE 获取
val sensorManager = getSystemService(requireContext(),SensorManager::class.java)
获取设备上可用的传感器列表
-
使用 SensorManager 获取所有传感器
val sensorList: List<Sensor> = mSensorManager.getSensorList(Sensor.TYPE_ALL) val sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); //可获得光传感器 val sensorName = sensor.name ///可以获得传感器的名称Sensor 代表传感器对象的是一个单独的类,Sensor.TYPE_ALL 常量指示所有可用传感器
获取传感器数据
-
SensorEventListener 说明
当传感器数据发生变化时,Android 传感器框架构建了一个事件(SensorEvent),我们可以用 SensorEventListener 接口监控数据变化,并在 onSensorChanged()回调处理新数据
When sensor data changes, the Android sensor framework generates an event (a
SensorEvent) for that new data. Your app can register listeners for these events, then handle the new sensor data in anonSensorChanged()callback. All of these tasks are part of theSensorEventListenerinterface. -
SensorEventListener 接口详情
SensorEventListener 我们可以处理传感器数据,包括两个回调函数
- onSensorChanged() : 当传感器数据可用时,我们可以在这里处理 APP 中新传感器数据
- onAccuracyChanged(): 当传感器的精度发生变化时,我们 APP 能够响应这一变化
-
SensorEventListener 的使用
-
Activity 实现 SensorEventListener ,并实现两种回调方法
class MainActivity() : AppCompatActivity(),SensorEventListener{ override fun onSensorChanged(sensor:Sensor, accuracy:Int){ //TODO } override fun onSensorChanged(event:SensorEvent){ //TODO } }SensorEvent 事件分析
val sensorType = sensor.type //类型 val sensorName = sensor.name ///传感器名 -
使用 SensorManager 在 onStart 方法注册监听
override fun onStart(){ sensorManager.registerListener (this,sensor,SensorManager.SENSOR_DELAY_NORMAL); } li>
在 onStop 中解除监听
override fun onStop(){ sensorManager.unregisterListener(this); } -

