Android Sensor 入门
来源:互联网 发布:客所思kx2a mac 编辑:程序博客网 时间:2024/06/01 08:34
转自http://www.linuxidc.com/Linux/2011-08/41926.htm
每一部搭载Android智能操作系统的设备都具有一系列传感器的集合。其中最标准的两种传感器分别为Accelerometer Sensor(加速度计传感器)和Magnetometer Sensor(磁力计传感器)。当然Android设备当中还可能集中了其他类型的传感器,例如:Temperature Sensor(温度传感器),Proximity Sensor(距离临近传感器)等等其他类型的传感器。
一、Android 目前支持以下几种类型传感器:
二、怎么样获取当前设备某一特定类型传感器的列表(以Accelerometer Sensor为例)
1.public class SensorActivity extends Activity{
2. private static final String TAG = "SensorActivity";
3. //declare all ui widgets
4. Button getSpecifiedSensorListBtn;
5.
6. private SensorManager sensorManager;
7. @Override
8. public void onCreate(Bundle savedInstanceState) {
9. super.onCreate(savedInstanceState);
10. setContentView(R.layout.main);
11. //create references to all ui widgets
12. getSpecifiedSensorListBtn = (Button)findViewById(R.id.firstTest);
13. //initialize the sensorManager
14. sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
15.
16. getSpecifiedSensorListBtn.setOnClickListener(new OnClickListener() {
17.
18. @Override
19. public void onClick(View v) {
20. List<Sensor> sensorList = sensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER);
21. //iterate the sensor list
22. for(Sensor sensor : sensorList){
23. Log.d(TAG, "the name of the sensor:" + sensor.getName() + "\t type:" +
24. ((sensor.getType() == Sensor.TYPE_ACCELEROMETER) ? "ACCELEROMETER Sensor" :
25. "Other Sensor"));
26. }
27. }
28. });
29. }
30.}
控制台日志输出如下:
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2011-08/41926.htm
三、怎么样获取传感器当中的数据(例如:获取X,Y,Z轴的三个不同方向的加速度)
在介绍使用传感器事件监听器之前,我们先简单介绍一下SmartPhone的三维坐标系:
X-axis:水平方向的,正数值代表右边,负数值代表右边;
Y-axis:垂直方向的,正数值代表上边,负数值代表下边;
Z-axis:指向手机屏幕的前段界面的外边。
下面我们开始编写代码,获取不同方向的加速度的值:
1.public class SensorEventDemo extends Activity {
2. private SensorManager sensorManager;
3. //declare all ui widgets
4. TextView tv;
5.
6. @Override
7. protected void onCreate(Bundle savedInstanceState) {
8. super.onCreate(savedInstanceState);
9. setContentView(R.layout.listen_accelerometer);
10. //create all references to ui widgets
11. tv= (TextView)findViewById(R.id.attitude);
12.
13. sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
14. }
15.
16. private final SensorEventListener sensorEventListener = new SensorEventListener() {
17.
18. @Override
19. public void onSensorChanged(SensorEvent event) {
20. tv.setText("x轴加速度:" + event.values[0] +
21. "\ny轴加速度:" + event.values[1] +
22. "\nz轴加速度:" + event.values[2]
23. );
24. }
25.
26. @Override
27. public void onAccuracyChanged(Sensor sensor, int accuracy) {
28.
29. }
30. };
31.
32. @Override
33. protected void onResume() {
34. sensorManager.registerListener(sensorEventListener,
35. sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
36. SensorManager.SENSOR_DELAY_UI);
37. super.onResume();
38. }
39.
40. @Override
41. protected void onPause() {
42. sensorManager.unregisterListener(sensorEventListener);
43. super.onPause();
44. }
45.}
下面为真机运行显示结果:
最后如果你还是觉得我写的不够详细 看的不够爽 不要紧我把源代码的下载地址贴出来。
免费下载地址在 http://linux.linuxidc.com/
用户名与密码都是www.linuxidc.com
具体下载目录在 /pub/Android源码集锦/2011年/8月/Android Sensor 入门源码/
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2011-08/41926p2.htm
- Android Sensor 入门
- Android Sensor
- android sensor
- android sensor
- android sensor
- Android Sensor
- Android sensor
- android sensor
- [sensor] android的sensor架构
- Android Light Sensor与Temperature Sensor开发
- android sensor 框架分析---sensor数据流分析
- android sensor 框架分析---sensor native分析
- android sensor 框架分析---sensor 总结
- Android Proximity Sensor近距离传感器P-Sensor
- Android sensor flow
- G-sensor On Android
- Android sensor介绍
- Android sensor 大杂烩
- Android之Sensor 简介
- Android架构_xgqsa-ChinaUnix博客
- Android中G-Sensor相关流程
- 子夜悟道随笔
- android中Sensor 工作流程
- Android Sensor 入门
- 【Android笔记 七】Android Sensor感应器介绍(三)获取用户移动方向,指南针原理
- Android Sensor工作流程(一)
- Android学习之Sensor
- keytool 错误: java.io.FileNotFoundException: MyAndroidKey.keystore (拒绝访问).
- 创业公司的市场如何做?
- Link Stack
- LED驱动程序例子
- Vert.x的未来将何去何从?