Android学习之教你五步搞定Sensor,让程序更酷
2015-04-20 00:11
295 查看
首先介绍下,啥叫传感器。
Sensor(传感器): 维基百科告诉我:传感器是接收信号或刺激并反应的器件,能将待测物理量或化学量转换成另一对应输出的装置。
比如:重力传感器,方向传感器
Android对每个设备的传感器都进行了抽象,SensorManger类用来控制传感器,Sensor用来描述具体的传感器,SensorEventListener用来监听传感器值的改变。
进入主题:
只需要五步,你就能搞定Sensor。让你的程序变的更酷。
[java] view plaincopy
//第一步:获得SensorManager对象,返回的就是一个硬件设备的控制器
SensorManager sensorManager = (SensorManager)getSystemService(SERVICE_NAME);
//第二步:获得特定的传感器
Sensor accelerSensor = sensorManager.getDefaultSensor(Sensor. TYPE_ACCELEROMETER);
//第三步:创建SensorEventListener监听传感器的值改变并且做出相应的动作
SensorEventListener mySensorListener = new SensorEventListener() {
//传感器的值改变调用此方法
@Override
public void onSensorChanged(SensorEvent event) {
float x = event.values[0];
float y = event.values[1];
float z = event.values[2];
//获得值之后,你就可以进行相应的处理啦
System.out.println("~~~X is :"+x);
System.out.println("---Y is :"+y);
System.out.println("+++Z is :"+z);
}
//传感器的精确度改变调用此方法
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}
//第四步:注册传感器事件监听事件
sensorManager.registerListener(mySensorListener, accelerSensor, SensorManager.SENSOR_DELAY_NORMAL);
//第五步:注销传感器事件的监听
sensorManager.unregisterListener(mySensorListener);
补充:
第二步中可以获得如下传感器,
传感器类型列表:
Sensor.TYPE_ACCELEROMETER:
加速计传感器
Sensor.TYPE_GYROSCOPE:
回转仪传感器
Sensor.TYPE_LIGHT:
光传感器,动态控制屏幕亮度
Sensor.TYPE_MAGNETIC_FIELD:
磁场传感器
Sensor.TYPE_ORIENTATION:
方向传感器
Sensor.TYPE_PRESSURE:
压力传感器
Sensor.TYPE_PROXIMIY:
邻近距离传感器
Sensor.TYPE_TEMPERATURE:
温度传感器
有些手机不支持部分感应装置你可以判断sensor是否为null,为null时你可以提示用户。
你也可以使用下面的语句获得设备可用的的传感器列表:
List<Sensor> allSensors = sensorManger.getSensorList(Sensor.TYPE_ALL);
在第三步中,
三个参数分别为:SensorEventListener、Sensor、传感器的更新速率
前两个参数都是之前声明的。
第三个参数,有四个选择。
传感器更新速率:
SensorManager.SENSOR_DELAY_FASTEST:
指定可能最快的传感器更新速率
SensorManager.SENSOR_DELAY_GAME:
指定适合在游戏中使用的更新速率
SensorManager.SENSOR_DELAY_NORMAL:
指定默认的更新速率
SensorManager.SENSOR_DELAY_UI:
指定适合于更新UI的更新速率
第四步一般是在onResume()中进行。
第五步一般在onPause()中进行。
这样Activity是和用户交互时才使用它们。
我写了一个方向传感器的简单例子,有兴趣的同学可以下载:
http://download.csdn.net/source/3326822
就这样你就可以进入Android的Sensor世界了,在接下来的文章中,我会结合游戏和实例来详细介绍部分传感器。
时候也不早了,今天就到这里了,谢谢大家。
Sensor(传感器): 维基百科告诉我:传感器是接收信号或刺激并反应的器件,能将待测物理量或化学量转换成另一对应输出的装置。
比如:重力传感器,方向传感器
Android对每个设备的传感器都进行了抽象,SensorManger类用来控制传感器,Sensor用来描述具体的传感器,SensorEventListener用来监听传感器值的改变。
进入主题:
只需要五步,你就能搞定Sensor。让你的程序变的更酷。
[java] view plaincopy
//第一步:获得SensorManager对象,返回的就是一个硬件设备的控制器
SensorManager sensorManager = (SensorManager)getSystemService(SERVICE_NAME);
//第二步:获得特定的传感器
Sensor accelerSensor = sensorManager.getDefaultSensor(Sensor. TYPE_ACCELEROMETER);
//第三步:创建SensorEventListener监听传感器的值改变并且做出相应的动作
SensorEventListener mySensorListener = new SensorEventListener() {
//传感器的值改变调用此方法
@Override
public void onSensorChanged(SensorEvent event) {
float x = event.values[0];
float y = event.values[1];
float z = event.values[2];
//获得值之后,你就可以进行相应的处理啦
System.out.println("~~~X is :"+x);
System.out.println("---Y is :"+y);
System.out.println("+++Z is :"+z);
}
//传感器的精确度改变调用此方法
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}
//第四步:注册传感器事件监听事件
sensorManager.registerListener(mySensorListener, accelerSensor, SensorManager.SENSOR_DELAY_NORMAL);
//第五步:注销传感器事件的监听
sensorManager.unregisterListener(mySensorListener);
补充:
第二步中可以获得如下传感器,
传感器类型列表:
Sensor.TYPE_ACCELEROMETER:
加速计传感器
Sensor.TYPE_GYROSCOPE:
回转仪传感器
Sensor.TYPE_LIGHT:
光传感器,动态控制屏幕亮度
Sensor.TYPE_MAGNETIC_FIELD:
磁场传感器
Sensor.TYPE_ORIENTATION:
方向传感器
Sensor.TYPE_PRESSURE:
压力传感器
Sensor.TYPE_PROXIMIY:
邻近距离传感器
Sensor.TYPE_TEMPERATURE:
温度传感器
有些手机不支持部分感应装置你可以判断sensor是否为null,为null时你可以提示用户。
你也可以使用下面的语句获得设备可用的的传感器列表:
List<Sensor> allSensors = sensorManger.getSensorList(Sensor.TYPE_ALL);
在第三步中,
三个参数分别为:SensorEventListener、Sensor、传感器的更新速率
前两个参数都是之前声明的。
第三个参数,有四个选择。
传感器更新速率:
SensorManager.SENSOR_DELAY_FASTEST:
指定可能最快的传感器更新速率
SensorManager.SENSOR_DELAY_GAME:
指定适合在游戏中使用的更新速率
SensorManager.SENSOR_DELAY_NORMAL:
指定默认的更新速率
SensorManager.SENSOR_DELAY_UI:
指定适合于更新UI的更新速率
第四步一般是在onResume()中进行。
第五步一般在onPause()中进行。
这样Activity是和用户交互时才使用它们。
我写了一个方向传感器的简单例子,有兴趣的同学可以下载:
http://download.csdn.net/source/3326822
就这样你就可以进入Android的Sensor世界了,在接下来的文章中,我会结合游戏和实例来详细介绍部分传感器。
时候也不早了,今天就到这里了,谢谢大家。
相关文章推荐
- Android学习之教你五步搞定Sensor,让程序更酷 !!
- Android学习之教你五步搞定Sensor,让程序更酷
- Android学习之教你五步搞定Sensor,让程序更酷
- Android学习之Sensor
- Android开发入门之学习笔记(三):程序窗口的布局
- Android开发入门之学习笔记(四):程序窗口的布局(二)
- 小白学习android(四): 如何在eclipse模拟器上运行下载好的apk程序+删除
- android 学习笔记,程序框架
- Android多媒体学习十:利用AudioRecord类实现自己的音频录制程序
- Android学习-好马配好鞍,程序真机调试运行
- Android多媒体学习七:调用Android自带的音频录制程序,实现录制
- 在Ubuntu上为Android系统内置C可执行程序测试Linux内核驱动程序 (学习老罗的)
- android系统之sensor学习
- android学习--手机连接到PC后程序不能检测手机的SDCard问题
- Android学习指南之二:分析Android框架及Android程序的目录结构
- Android学习之问题处理程序Handler
- android学习历程——如何修改程序在桌面的图标和名字
- Android学习札记41:你真的有必要退出吗?——再说Android程序的退出功能
- Android多媒体学习八:调用Android自带的音频录制程序,实现录制
- Android多媒体学习九:利用MediaRecorder类实现自己的音频录制程序