Android开发教程传感器编程详解-麦子学院

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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:

if (getWindowManager().getDefaultDisplay().getOrientation() == 0) {

//Do some portrait

} else {

//Do some Landscape

要注意的是Android传感器中的常数和ActivityInfo的不一样,0是直的,1是横的。然后因为每次尽管变萤幕方向会纠发一连串的onPause, onDestory, onCreate,所以需要的处理全部写在onCreate里面就大功告成。

如需了解更多相关知识,请至麦子学院官网查询()。

相关文档
最新文档