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