Android的传感器编程小结
来源:互联网 发布:知乎 希尔瓦娜斯 7.0 编辑:程序博客网 时间:2024/06/10 16:24
这两天结合手机研究了下Android的传感器编程,现做一个小结:
(手机是G2 Magic,OS版本1.1)
传感器编程中,
1. Accelrator的x,y,z轴的正负向:
手机屏幕向上水平放置时: (x,y,z) = (0, 0, -10) 而不是 (0, 0, 10)
当手机顶部抬起时: y减小,且为负值
当手机底部抬起时: y增加,且为正值
当手机右侧抬起时: x减小,且为负值
当手机左侧抬起时: x增加,且为正值
2. Accelrator的z轴的变化:
手机屏幕向上水平放置时,z= -10
手机屏幕竖直放置时, z= 0
手机屏幕向下水平放置时,z= 10
3. 当x变为+5时, 手机画面切换为竖向
当x变为-5时, 手机画面切换为横向
4. 传感器相关的类在SDK1.1和SDK1.5中不一样,因此实现代码也不一样
5. 传感器类型分为:方向、加速表、光线、磁场、临近性、温度等
程序中分别为:
方向: SensorManager.SENSOR_ORIENTATION,
加速表: SensorManager.SENSOR_ACCELEROMETER
光线: SensorManager.SENSOR_LIGHT
磁场: SensorManager.SENSOR_MAGNETIC_FIELD
临近性: SensorManager.SENSOR_PROXIMITY
温度: SensorManager.SENSOR_TEMPERATURE
采样率:最快、游戏、普通、用户界面。当应用程序请求特定的采样率时,其实只是对传感器子系统的一个提示
,或者一个建议。不保证特定的采样率可用。
最快: SensorManager.SENSOR_DELAY_FASTEST
游戏: SensorManager.SENSOR_DELAY_GAME
普通: SensorManager.SENSOR_DELAY_NORMAL
用户界面: SensorManager.SENSOR_DELAY_UI
准确性: 高、低、中、不可靠。
6. Orientation Sensor三个坐标的含义:
values[0]:方位角(水平旋转角),简单的说就是手机的头现在朝向哪个方位,0=北、90=东、180=南、270
=西(可是好像不太准)
values[1]:纵向旋转角,0=面朝上平置、-90=垂直向上、-180/180=面朝下平置、90=垂直向下
values[2]:橫向旋转角,0=朝前、90=往右倒、-90=往左倒
7. 自動偵測手機方向
要讓手機自動旋轉的話,只要在AndroidManifest.xml裡面把ORIENTAION改成sensor就好,可是要讓Activity偵測到
方向改變的話,要去抓Activity的Display:
if (getWindowManager().getDefaultDisplay().getOrientation() == 0) {
//Do some portrait
} else {
//Do some Landscape
要注意的是這裡的常數和ActivityInfo的不一樣,0是直的,1是橫的。
然後因為每次改變螢幕方向都會引發一連串的onPause, onDestory, onCreate,所以需要的處理全部寫在onCreate裡
面就大功告成。
参考资料:
1. 深入探讨 Android 传感器
http://www.ibm.com/developerworks/cn/opensource/os-android-sensor/index.html#download
2. Android应用开发实战:GPS与加速度传感器
http://www.lupaworld.com/263077/viewspace-137400.html
转自:http://www.cnblogs.com/nio-nio/archive/2009/10/23/1588610.html
- Android的传感器编程小结
- Android的传感器编程小结
- Android的传感器编程小结
- Android传感器知识小结
- Android传感器编程入门
- Android传感器编程入门
- Android传感器编程入门
- Android传感器编程入门
- android声音传感器编程
- Android传感器编程入门
- Android传感器编程入门
- Android传感器高级编程
- Android传感器编程入门
- Android传感器编程入门
- 《Android传感器高级编程》
- Android:传感器编程
- android 传感器编程
- Android 方位传感器 (传感器编程合集)
- 解析xml的方式
- 神经网络的基本知识(五):前向网络:BP网络
- 爱看海的男孩
- 解决Audacious 乱码问题
- 学术搜索引擎大全
- Android的传感器编程小结
- “正反离职”说
- USB骨架(一)
- ADS: (Fatal)L6002U:Could not open file:.....
- ubuntu下PHP配置与安全加强
- vim的使用和软件安装的一些技巧
- 30个值得收藏可免费搜索/下载PDF电子图书(文档)的搜索引擎
- 【转载】企业级软件开发流程
- 神经网络(六):前馈网络Delta study principle and Hebbian study principle