当前位置:K88软件开发文章中心编程语言APP编程Android01 → 文章内容

10.10 传感器专题(1)——相关介绍

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-12 6:28:07

tPower(); //传感器使用时的耗电量 }2)传感器的使用套路一般我们是很少说直接去获取Sensor,然后获取上面这些信息的!因为这没什么大的作用,我们更多的时候是去获取传感器采集到的数据,比如获取当前的大气压,或者方向传感器三个角的值,或者陀螺仪的值这样~而大部分的传感器数据采集都是下面的一个套路:~Step 1:获得传感器管理器:SensorManager sm = (SensorManager)getSystemService(SENSOR_SERVICE); ~Step 2:调用特定方法获得需要的传感器:比如这里获取的是方向传感器,想获得什么传感器自己查API~:Sensor mSensorOrientation = sm.getDefaultSensor(Sensor.TYPE_ORIENTATION);~Step 3:实现SensorEventListener接口,重写onSensorChanged和onAccuracyChanged的方法!onSensorChanged:当传感器的值变化时会回调onAccuracyChanged:当传感器的进度发生改变时会回调@Overridepublic void onSensorChanged(SensorEvent event) { final float[] _Data = event.values; this.mService.onSensorChanged(_Data[0],_Data[1],_Data[2]);}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {}我们一般获取传感器数据的来源就是这个SensorEvent,这个类中有一个values的变量,类型是Float[],该变量最多有只有三个元素,而且传感器不同,对应元素代表的含义也不同,比如方向传感器中第一个元素是方位角的值,而气压传感器中第一个值则是气压值!~Step 4:SensorManager对象调用registerListener注册监听器:<code>ms.registerListener(mContext, mSensorOrientation, android.hardware.SensorManager.SENSOR_DELAY_UI);</code>方法也很简单,对应的参数:上下文对象,Sensor传感器对象,以及传感器的延时时间的精度密度,有四个可选值:SENSOR_DELAY_FASTEST——延时:0msSENSOR_DELAY_GAME——延时:20msSENSOR_DELAY_UI——延时:60msSENSOR_DELAY_NORMAL——延时:200ms当然低延时意味着更频繁的检车,更意味着更多的电量消耗,如果不是要求精度非常高的建议别使用太高精度的,一般用第三个较多~自己衡量衡量吧~~Step 5:监听器的取消注册:用完就放,一个很好的习惯,一般我们可以把他写到Activity或者Service的销毁方法中:ms.registerListener(mContext, mSensorOrientation, android.hardware.SensorManager.SENSOR_DELAY_UI);好的,套路非常简单~4.本节示例代码下载:SensorDemo1.zip本节小结:好的,本节给大家讲解了下Android中的传感器的介绍以及如何了解自己手机所支持的传感器,除了网上查,也可以自己写代码测,然后还讲解了Sensor传感器相关信息获取的方法流程,最后还讲解了采集传感器数据的套路,后面我们会针对一些常用的传感器的用法进行剖析,敬请期待~

上一页  [1] [2] 


10.10 传感器专题(1)——相关介绍