第一步:
定义传感器管理服务和传感器时间监听器
MySensorEventListener mySensorEventListener;//传感器事件监听器
private SensorManager sensorManager;// 传感器管理服务
第二步:
获取传感器管理服务
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);// 获取传感器管理服务
实现监听器,一个安装了SensorEventListener接口的类
class MySensorEventListener implements SensorEventListener {
@Override
public void onAccuracyChanged(Sensor arg0, int arg1) {
// TODO Auto-generated method stub
// 当传感器精度改变时回调该方法
}
@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
int sensorType = event.sensor.getType();
float[] values = event.values; // values[0]:X轴,values[1]:Y轴,values[2]:Z轴
//是重力加速度事件且任意一轴上的加速度值大于设定值item
if (sensorType == Sensor.TYPE_ACCELEROMETER) {
if ((Math.abs(values[0]) > item || Math.abs(values[1]) > item || Math
.abs(values[2]) > item)) {
tv1.setText( String.format(str, values[0], values[1], values[2]));
//vibrator.vibrate(300);// 震动
}
}
}
}
第三步:
重载Activity中的onResume()方法注册监听器
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
// 注册
sensorManager.registerListener( mySensorEventListener,
sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);
}
重载Activity中的onPause()方法取消注册监听器
@Override
protected void onPause() {
// TODO Auto-generated method stub
//取消注册
sensorManager.unregisterListener( mySensorEventListener );
super.onPause();
}
demo下载地址:
http://download.csdn.net/detail/duduhali/9104591