(21)-10 传感器编程移动开发技术_第1页
(21)-10 传感器编程移动开发技术_第2页
(21)-10 传感器编程移动开发技术_第3页
(21)-10 传感器编程移动开发技术_第4页
(21)-10 传感器编程移动开发技术_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

传感器编程.目录CONTENTS掌握Android中常用传感器的特点及使用;01掌握Android传感器的常用类和接口;02掌握Android中传感器的开发步骤。03一、传感器简介大多数Android设备都会内置传感器,用来测量运动、旋转和环境条件(重力、温度、湿度等),这些传感器可以将采集到的高精度的数据上报给应用程序。我们可以将传感器想成是应用程序的外延,帮助我们设计出更加丰富和多元化的应用。1.温度传感器(Temperaturesensor)原理:利用物质各种物理性质随温度变化的规律把温度转换为可用输出信号。用途:监测手机内部以及电池的温度。如果发现某一部件温度过高,手机就会关机,防止手机损坏。扩展功能方面,温度传感器也能检测外界空气中的温度变化,甚至是用户当前的体温。一、传感器简介2.加速度传感器(Accelerationsensor)原理:通过三个维度确定加速度方向。用途:可用来计步、判断手机朝向的方向。当用户拿着手机运动时,会出现上下摆动的情况,这样可以检测出加速度在某个方向上来回改变,通过检测这个来回改变的次数,可以计算出步数。在游戏里能通过加速度传感器触发特殊指令。日常应用中的一些甩动切歌、翻转静音等也都用到了这枚传感器。一、传感器简介3.重力传感器(G-Sensor)原理:利用压电效应实现,传感器内部一块重物和压电片整合在一起,通过正交两个方向产生的电压大小,来计算出水平方向。用途:手机横竖屏智能切换、拍照照片朝向、重力感应类游戏(如滚钢珠)。一、传感器简介4.光线传感器(AmbientLightSensor)原理:光敏三极管,接受外界光线时,会产生强弱不等的电流,从而感知环境光亮度。用途:通常用于调节屏幕自动背光的亮度,白天提高屏幕亮度,夜晚降低屏幕亮度,使得屏幕看得更清楚,并且不刺眼。也可用于拍照时自动白平衡。还可以配合距离传感器检测手机是否在口袋里防止误触。一、传感器简介5.磁力传感器该传感器主要读取的是磁场的变化,通过该传感器便可开发出指南针、罗盘、地图导航方向、金属探测器APP等。6.指纹传感器可用于加密、解锁、支付等。一、传感器简介7.陀螺仪:用途:摇一摇(晃动手机实现一些功能)、通过平移/转动/移动手机可在游戏中控制视角、VR虚拟现实、在GPS没有信号时(如隧道中)根据物体运动状态实现惯性导航。一、传感器简介另外还有红外线传感器,可以控制电视、空调与电脑或其它手机无线连接。霍尔感应器原可以用于翻盖自动解锁、合盖自动锁屏;GPS可用于地图、导航、测速、测距等。一、传感器简介一、传感器简介二、Android传感器常用类和接口传感器属于Android应用的外延,Android应用不能直接对传感器进行操作,Android对硬件的操作进行了封装,提供给我们一些类和接口,我们通过类和接口来调用方法可以获取传感器上报的数据。二、Android传感器常用类和接口Android传感器开发中常用的类和接口有:SensorManager、SensorEventListener、Sensor、SensorEvent。SensorManager就是所有传感器的一个综合管理类,包括传感器的种类、采样率、精准度等。可以通过getSystemService方法来获取一个SensorManager对象。二、Android传感器常用类和接口三、传感器编程步骤(1)获取传感器管理器对象、传感器对象,具体代码如下。具体代码如下。//获取传感器管理器SensorManager

SensorManagersm

=

(SensorManager)

getSystemService(Context.SENSOR_SERVICE);

//获取传感器Sensor

SensoraccelerometerSensor

=

sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

三、传感器编程步骤(2)基于SensorEventListener接口定义传感器事件监听器,获取响应数据。必须实现两个的方法。onSensorChanged(SensorEventevent)方法该方法在传感器值更改时被调用。参数包括一个SensorEvent对象。该对象包括一组浮点数,表示传感器获得的方向、加速度等信息。onAccuracyChanged(Sensorsensor,intaccuracy):该方法在传感器的精准度发生改变时调用。参数包括两个整数:一个表示传感器,另一个表示该传感器新的准确值。三、传感器编程步骤(3)注册(应用)传感器事件。Android中提供了registerListener来注册一个传感器,并提供了unregisterListener来卸载一个传感器。注册传感器BooleanmRegisteredSensor=mSensorManager.registerListener

(SensorEventListenerls,Sensorse,intrate);三、传感器编程步骤(3)注册(应用)传感器事件。卸载传感器mSensorManager.unregisterListener(SensorEventListenerls);四、传感器编程案例案例:光线传感器的应用需求:在手机屏幕上实时显示当前环境的光线的强弱值。界面如图所示:四、传感器编程案例classMyListenerimplementsSensorEventListener{

@Override

publicvoidonSensorChanged(SensorEventevent){

float[]values=event.values;

textview.setText("当前的光照为:"+values[0]);

}

@Override

publicvoidonAccuracyChanged(Sensorsensor,intaccuracy){

}

}四、传感器编程案例protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

textview=(TextView)findViewById(R.id.textview);

SensorManagersm=(SensorManager)getSystemService(SENSOR_SERVICE);

SensorlightSens

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论