
开发步骤:
1.获取传感器服务:sm =(SensorManager) getSystemService(SENSOR_SERVICE);
2.获取指定类型的传感器sm.getDefaultSensor(int type);
3.一般在Activity的onResume()方法中使用SensorManger的registerListener()为指定的传感器注册即可.
sm.registerListener(listener, s1, SensorManager.SENSOR_DELAY_GAME);//最后一个参数为监听频率
在Listener中的SensorEvent对象的values方法返回float[],包含不同传感器返回的数据值,对于不同的传感器,返回的值的个数是不一样的.
各种类型的传感器:
1.加速度传感器 Sensor.TYPE_ACCELEROMETER:返回手机设备在X,Y,Z三个方向上的加速度.
2.磁场传感器,Sensor.TYPE_MAGNETIC_FIELD:,返回周围磁场在手机的X,Y,Z方向上的影响(磁场分量).
3.陀螺仪感应器:Sensor.TYPE_GYROSCOPE:
4.光线传感器 Sensor.TYPE_LIGHT:返回周围光的强度,单位是勒克斯lx
5.距离感应器Sensor.TYPE_PROXIMITY:
6.重力传感器Sensor.TYPE_GRAVITY:
7.线性加速传感器Sensor.TYPE_LINEAR_ACCELERATION:
8.旋转向量传感器Sensor.TYPE_ROTATION_VECTOR:
9.方向传感器:Sensor.TYPE_ORIENTATION:返
回三个值,第一个为和正北方向的角度,沿Z轴旋转,0表示正北,90度表示正东,180表示正南,270表示正西.
第二个值绕X轴倾斜,水平屏幕向上,返回0,抬起手机顶部时,值开始减小,范围0~-180,从手机底部开始抬起,值范围为0~180.
第三个值为手机左侧或者右侧翘起的高度.沿着Y轴倾斜,范围是-90~90,水平放置为0,从左侧抬起,会从0到-90,从右侧开始抬起,范围为0~90.
10.Sensor.TYPE_TEMPERATURE:温度传感器,返回摄氏度.
11.Sensor.TYPE_PRESSURE压力传感器,代表手机设备周围压力的大小
虽然AndroidSDK定义了十多种传感器,但并不是每一部手机都完全支持这些传感器。例如,Google Nexus S支持其中的9种传感器(不支持压力和温度传感器)
