资讯详情

Android传感器编程经验总结

Android移动操作系统是一个开源操作系统,允许用户灵活编程以满足他们的各种需求。所以在学习这个系统之前,让我们一起学习吧Android传感器的相关应用。这两天结合手机研究Android现在总结一下传感器编程:

1. Accelrator的x,y,z轴的正负:

当手机屏幕向上水平放置时: (x,y,z) = (0, 0, -10) 而不是 (0, 0, 10)

手机顶部抬起时: y而且是负值

手机底部抬起时: y增加,为正值

手机右侧抬起时: x而且是负值

手机左侧抬起时: x增加,为正值

2. Accelratorz轴变化:

当手机屏幕向上水平放置时,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){

//Dosomeportrait

}else{

//DosomeLandscape

要注意的是Android传感器中的常数和ActivityInfo不同的是,0是直的,1是水平的。然后,每次屏幕的方向发生变化,都会导致一系列的屏幕。onPause, onDestory, onCreate,所以需要的处理全部写在onCreate大功告成。

【责任编辑:曹凯 TEL:(010)68476606】

点赞 0

标签: android传感器类型3

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台