<p>一、需要一个震动器</p><p>二、需要一个感应器</p>
//定义一个感应器管理者
SensorManager manager;
//定义一个振动器
Vibrator vibrator;
//定义一个监听器
SensorEventListener listener;
//定义一个感应器,这里需要的是一个重力加速度感应器
Sensor sensors;
//定义一个频率参数
int rate;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化,通过系统服务获取
manager=(SensorManager) getSystemService(SENSOR_SERVICE);
//初始化,通过系统服务来获取
vibrator=(Vibrator) getSystemService(VIBRATOR_SERVICE);
//初始化感应器
sensors=manager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
//初始化频率
rate=SensorManager.SENSOR_DELAY_NORMAL;
//初始化监听
listener=new SensorEventListener() {
public void onSensorChanged(SensorEvent enevt) {
float[] ary=enevt.values;
float x=ary[0];
float y=ary[1];
float z=ary[2];
//阀值
float f=15;
if(Math.abs(x)>f||Math.abs(y)>f||Math.abs(z)>f){
System.out.println("震动了!!!");
//振动行为
vibrator.vibrate(1000);
}
}
public void onAccuracyChanged(Sensor arg0, int arg1) {
}
};
manager.registerListener(listener, sensors, rate);
}
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
manager.unregisterListener(listener);
}
别忘了添加权限: <uses-permission android:name="android.permission.VIBRATE"/>