SensorManager
SensorMananger lets you access the device's sensors.
你可以用Context.getSystemService(SENSOR_SERVICE)得到SensorManager,有了它你就可以管理传感器了,其中包含下面提到的方法,getSensorLIst,registerListener,unregisterListener等。
Always make sure to disable sensors you don't need, especially when your activity is paused. Failing to do so can drain the battery in just a few hours. Note that the system will
就是说要记得在不用的时候关掉传感器,因为手机黑屏是不会自动关掉传感器的,当然如果你觉得电量一直都很足,那算我多嘴咯。
官网的例子:
public class SensorActivity extends Activity, implements SensorEventListener { private final SensorManager mSensorManager; private final Sensor mAccelerometer; public SensorActivity() { mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE); mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); } protected void onResume() { super.onResume(); mSensorManager.registerListener(this, mAccelerometer,SensorManager.SENSOR_DELAY_NORMAL); } protected void onPause() { super.onPause(); mSensorManager.unregisterListener(this); } public void onAccuracyChanged(Sensor sensor, int accuracy) { } public void onSensorChanged(SensorEvent event) { } }
一般流程:
Sensor编程的一般步骤:
1.取得SensorManager
SensorManager |
2.实现接口SensorEventListener
public public |
3.取得某种Sensor对象
List<Sensor> |
4.注册SensorListener
sm.regesterListener(SensorEventListener |
其中第三个参数是延迟时间的精密度。
表格
参数 | 延迟时间 |
SensorManager.SENSOR_DELAY_FASTEST | 0ms |
SensorManager.SENSOR_DELAY_GAME | 20ms |
SensorManager.SENSOR_DELAY_UI | 60ms |
SensorManager.SENSOR_DELAY_NORMAL | 200ms |
5.取消注册SensorManager
sm.unregisterListener(SensorEventListener |