Android中支持的几种传感器:
Sensor.TYPE_ACCELEROMETER:加速传感器
Sensor.TYPE_GYROSCOPE:陀螺仪传感器
Sensor.TYPE_LIGHT:亮度传感器
Sensor.TYPE_MAGNETIC_FIFLD:地磁传感器
Sensor.TYPE_ORIENTATION:方向传感器
Sensor.TYPE_PRESSURE:压力传感器
Sensor.TYPE_PROXIMITY:进程传感器
Sensor.TYPE_GRAVITY:重力传感器
Sensor.TYPE_PROXIMITY 距离传感器
二、使用传感器
1、获取传感器综合管理类(SensorManager)
SensorManager manager = (SensorManager)getSystemService(SENSOR_SERVICE);
2、获取传感器对象
Sensor sensor = manager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
3、注册监听器
manger.registerListener(this, sensor, manager.SENSOR_DELAY_UI)
4、注销监听器
manager.unregisterListener(this, sensor);
其中在注册和注销的时候的第一个参数是SensorEventListener,那么在activiyt中要实现SensorEventListener接口,所以可以在这里用this,第二个参数是得到的传感器,第三个是传感精度。
三、传感精度
SENSOR_DELAY_GAME:若开发游戏可以使用该值,适用于传感精度较高的情况
SENSOR_DELAY_NORMAL:标准延迟,默认值
SENSOR_DELAY_UI:若使用传感器更新UI,可以使用该值
SENSOR_DELAY_FASTEST:最高精度
四、常用方法
1、一般在onResume()方法中注册监听器,在onPause()方法中注销监听
2、当发生传感变化时,调用onSensorChanged(SensorEvent event)方法,当传感精度变化时,调用onAccuracyChanged(Sensor arg0, int arg1)方法
五、event.value的常量
对于手机X,Y,Z轴的方向:
X轴:正常握住手机,从左自右;Y轴:正常握住手机,从屏幕底端自屏幕顶端;Z轴:从手机背面自手机正面
1、方向传感器(Sensor.TYPE_ORIENTATION)
values[0]:绕Z轴旋转角度,0~360(0为北,90为东,180为南,270为西)
values[1]:绕X轴旋转角度,-180<values[1]<180(平放为0,从头至垂直为0~-180,从底部至垂直为0~180)
values[2]:绕Y轴旋转角度,-90<values[2]<90(平放为0,从右至垂直为0~90,从左至垂直为0至-90)
2、加速传感器(Sensor.TYPE_ACCELEROMETER)
3个值分别代表X,Y,Z轴的加速度,水平放置手机,若从左至右移动,value[0]为负,从右至左移动,value[0]为正数
3、重力感应器(Sensor.TYPE_GRAVITY)
values数组中三个元素分别表示了X、Y、Z轴的重力大小
4、陀螺仪传感器(Sensor.TYPE_GYROSCOPE)
values[0]:延X轴旋转的角速度。
values[1]:延Y轴旋转的角速度。
values[2]:延Z轴旋转的角速度。
逆时针旋转时为正,顺时针旋转时为负
其它的暂时不介绍了。。。。