Android 传感器(Sensor) 相关知识

Sensor 传感器相关知识点记录

SensorManager

  1. 概要:

    SensorManager 是一个让你能够访问到设备传感器的系统服务

    The sensor manager is a system service that lets you access the device sensors.

  2. 获取方式:

    通过获取 SENSOR_SERVICE 获取

    val sensorManager =  getSystemService(requireContext(),SensorManager::class.java)
    

获取设备上可用的传感器列表

  1. 使用 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 常量指示全部可用的传感器

获取到传感器的数据

  1. 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 an onSensorChanged() callback. All of these tasks are part of the SensorEventListener interface.

  2. SensorEventListener 接口详情

    SensorEventListener 包括两个回调函数,我们能够在其中处理传感器数据

    • onSensorChanged() : 当传感器数据时可用的,我们可以在这里处理我们 APP 中的新传感器数据
    • onAccuracyChanged(): 当传感器精确度改变后,我们的 APP 能够响应这个变化
  3. SensorEventListener 的使用

    1. 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   //传感器名
      
    2. 使用 SensorManager 在 onStart 方法注册监听

      override fun onStart(){
          sensorManager.registerListener
              (this,sensor,SensorManager.SENSOR_DELAY_NORMAL);
      }
      
    3. 在 onStop 中解除监听

      override fun onStop(){
          sensorManager.unregisterListener(this);
      }
      
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值