安卓传感器使用详解

本文详细介绍了如何在安卓设备上获取和使用传感器,包括如何获取传感器清单、传感器的属性信息,以及传感器的使用步骤。重点讲解了如何注册和监听传感器,特别是方向传感器的原理和应用,提供了一个简单的DEMO。还提到了其他类型的传感器,如加速度、磁力、陀螺仪等,并简述了它们的功能和应用场景。
摘要由CSDN通过智能技术生成
传感器属于安卓设备硬件配置.一般模拟器中没有配置传感器硬件,而手机中配置一般不全,特别是低端手机配置很少,我们在使用传感器时应该根据手机中的实际存在的传感器来进行注册。如果手机中不存在我们注册的传感器,就算我们注册了也不起作用。

如何获取手机传感器清单
1,Android所有的传感器都归传感器管理器 SensorManager 管理,获取传感器管理器的方法很简单:
String service_name = Context.SENSOR_SERVICE;
SensorManager sensorManager = (SensorManager)getSystemService(service_name);
2,从传感器管理器中获取其中某个或者某些传感器的方法有如下三种:
第一种:获取某种传感器的默认传感器
Sensor defaultGyroscope = sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
第二种:获取某种传感器的列表
List<Sensor> pressureSensors = sensorManager.getSensorList(Sensor.TYPE_PRESSURE);
第三种:获取所有传感器的列表,我们这个例子就用的第三种
List<Sensor> allSensors = sensorManager.getSensorList(Sensor.TYPE_ALL);
3,对于某一个传感器,它的一些具体信息的获取方法可以见下表
getMaximumRange() 最大取值范围
getName() 设备名称
getPower() 功率
getResolution() 精度
getType() 传感器类型
getVentor() 设备供应商
getVersion() 设备版本号
4,遍历所有传感器
List<Sensor> list = manager.getSensorList(Sensor.TYPE_ALL);
  for(Sensor senser:list){
       Log.i("XXX",“name:”+senser.getName()+":type:"+senser.getType());
  }

传感器使用步骤:
第一步: 获得传感器管理器
SensorManger sm = (SensorManager).getSystemService(SENSOR_SERVICE);
第二步:获取具体的传感器对象,并为具体的传感器注册监听器 (这里我们使用磁阻传感器Sensor.TYPE_ORIENTATION.)
sm.registerListener (this,sm.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_FASTEST);
第3个参数值表示获得传感器数据的速度,SENSOR_DELAY_FASTEST表示尽可能快的获取传感器数据,除了该值以外,还可以设置3个获取
传感器数据的速度值,这些值如下:
    复制代码 代码如下:
SENSOR_DELAY_GAME 如果利用传感器开发游戏,建议使用该值。 一般大多数实时行较高的游戏使用该级别。
SENSOR_DELAY_NORMAL 默认的获取传感器数据的速度。标准延迟,对于一般的益智类游戏或者EASY界别的游戏可以使用,但过低的采样率可能对一些赛车类游戏有跳帧的现象。
SENSOR_DELAY_UI 若使用传感器更新UI, 建议使用该值。
SENSOR_DELAY_FASTEST:最低延迟,一般不是特别灵敏的处理不推荐使用,该模式可能造成手机电力大量消耗,而且由于传递的为大量的原始数据,算法处理不好将会影响游戏逻辑和UI的性能。
这里如果想注册其他的传感器,可以改变第一个参数值的传感器类型属性。我们应该根据手机中的实际存在的传感器来进行注册。如果手机中 
不存在我们注册的传感器,就算我们注册了也不起什么作用。
第三步,既然我们在第二部已经为传感器设置了监听。我们就要实现具体的监听方法,在android 中,应用程序使用传感器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值