您的位置:首页 > 移动开发 > Android开发

Android传感器的使用

2016-09-19 18:02 260 查看

传感器的使用

获取传感器

sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
//加速计传感器
accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
//磁力传感器
magnetic = sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
//陀螺仪
gyroscope = sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);


其他传感器:

  Sensor.TYPE_PRESSURE 压力传感器

 Sensor.TYPE_LIGHT 光线传感器

 Sensor.TYPE_PROXIMITY 距离传感器

 ……

设置监听器获取数据

//注册监听器及传感器的刷新速率`SensorManager.SENSOR_DELAY_NORMAL`
sensorManager.registerListener(accelerometerListener,accelerometer,
SensorManager.SENSOR_DELAY_NORMAL);
//创建监听器
private SensorEventListener accelerometerListener=new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
if(event.sensor.getType()==Sensor.TYPE_ACCELEROMETER){
//当加速度改变时获取数据
accelerometerValues=event.values.clone();
}

@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
//TODO: 由于环境等因素使传感器精度改变时执行的内容
}
};


传感器的刷新速率

SensorManager.SENSOR_DELAY_FASTEST  最大更新速率

SensorManager.SENSOR_DELAY_GAME  适用于游戏

SensorManager.SENSOR_DELAY_UI    适用于界面互交

SensorManager.SENSOR_DELAY_NORMAL 适用于改变屏幕方向

解除注册

@Override
protected void onPause() {
//在onResume中注册,onPause中解除注册
super.onPause();
sensorManager.unregisterListener(accelerometerListener);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: