获取手机支持的所有传感器:
传感器的使用:
1、实现SensorListener接口
2、获取传感器管理对象 sm = (SensorManager) getSystemService(SENSOR_SERVICE);
3、注册监听sm.registerListener(this,
Sensor.TYPE_ACCELEROMETER |
Sensor.TYPE_MAGNETIC_FIELD |
Sensor.TYPE_ORIENTATION |
Sensor.TYPE_GYROSCOPE |
Sensor.TYPE_LIGHT |
Sensor.TYPE_PRESSURE |
Sensor.TYPE_TEMPERATURE |
Sensor.TYPE_PROXIMITY |
Sensor.TYPE_GRAVITY |
Sensor.TYPE_LINEAR_ACCELERATION |
Sensor.TYPE_ROTATION_VECTOR,
SensorManager.SENSOR_DELAY_NORMAL);
public void onSensorChanged(int sensor, float[] values) {
synchronized (this) {
String str = "X:" + values[0] + ",Y:" + values[1] + ",Z:" + values[2];
switch (sensor){
case Sensor.TYPE_ACCELEROMETER:
View1.setText("加速度:" + str);
break;
case Sensor.TYPE_MAGNETIC_FIELD:
View2.setText("磁场:" + str);
break;
case Sensor.TYPE_ORIENTATION:
View3.setText("定位:" + str);
break;
case Sensor.TYPE_GYROSCOPE:
View4.setText("陀螺仪:" + str);
break;
case Sensor.TYPE_LIGHT:
View5.setText("光线:" + str);
break;
case Sensor.TYPE_PRESSURE:
View6.setText("压力:" + str);
break;
case Sensor.TYPE_TEMPERATURE:
View7.setText("温度:" + str);
break;
case Sensor.TYPE_PROXIMITY:
View8.setText("距离:" + str);
break;
case Sensor.TYPE_GRAVITY:
View9.setText("重力:" + str);
break;
case Sensor.TYPE_LINEAR_ACCELERATION:
View10.setText("线性加速度:" + str);
break;
case Sensor.TYPE_ROTATION_VECTOR:
View11.setText("旋转矢量:" + str);
break;
default:
View12.setText("NORMAL:" + str);
break;
}
}
}
4、 @Override
protected void onStop() {
sm.unregisterListener(this);
super.onStop();
}