ndroid传感器编程经验总结

本文总结了Android传感器编程的经验,包括Accelrator轴的变化、不同传感器类型、采样率和准确性等级,以及如何自动检测手机方向。通过示例解释了SensorManager中的常量,如SENSOR_ORIENTATION和SENSOR_DELAY_UI,并提供了自动旋转屏幕的实现方法。
  • Android传感器的编程技巧可以在这篇文章中一一找到。大家可以通过实践来对此有一个深入的掌握,并运用在实际开发中。

Android 手机操作系统是一款开源的操作系统,可以让用户灵活的进行编程来满足自己的各种需求。那么在学习这一系统之前,先让我们一起来了解一下Android传感器的相关应用。这两天结合手机研究了下Android传感器编程,现做一个小结:

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. Android传感器相关的类在SDK1.1和SDK1.5中不一样,因此实现代码也不一样

5. Android传感器类型分为:方向、加速表、光线、磁场、临近性、温度等

程序中分别为:

方向: SensorManager.SENSOR_ORIENTATION,

加速表: SensorManager.SENSOR_ACCELEROMETER

光线: SensorManager.SENSOR_LIGHT

磁场: SensorManager.SENSOR_MAGNETIC_FIELD

临近性: SensorManager.SENSOR_PROXIMITY

温度: SensorManager.SENSOR_TEMPERATURE

采样率:最快、游戏、普通、用户界面。当应用程序请求特定的采样率时,其实只是对Android传感器子系统的一个提示,或者一个建议。不保证特定的采样率可用。

最快: 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:

  
  1. if (getWindowManager().getDefaultDisplay().getOrientation() == 0) {   
  2. //Do some portrait   
  3. } else {   
  4. //Do some Landscape  

要注意的是Android传感器中的常數和ActivityInfo的不一樣,0是直的,1是橫的。然後因為每次改變螢幕方向都會引發一連串的onPause, onDestory, onCreate,所以需要的處理全部寫在onCreate裡面就大功告成。

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值