public class MainActivity extends Activity implements SensorEventListener {    private Button clean_btn;    private SensorManager mSensorManager;    private Vibrator vibrator;    @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//得到传感器管理器mSensorManager=(SensorManager) getSystemService(SENSOR_SERVICE);vibrator=(Vibrator) getSystemService(VIBRATOR_SERVICE);clean_btn=(Button) findViewById(R.id.clean_btn);clean_btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {clean_btn.setText("重測");}});}    @Override    protected void onResume() {    super.onResume();    //获取加速传感器    mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),     SensorManager.SENSOR_DELAY_NORMAL);        }        @Override    protected void onStop() {    super.onStop();    mSensorManager.unregisterListener(this);    }        @Override    protected void onPause() {    super.onPause();    mSensorManager.unregisterListener(this);    }    @Overridepublic void onSensorChanged(SensorEvent event) { int sensortype=event.sensor.getType(); float[] values=event.values; if(sensortype==Sensor.TYPE_ACCELEROMETER) { /*因为一般正常情况下,任意轴数值最大就在9.8~10之间,只有在你突然摇动手机   *的时候,瞬时加速度才会突然增大或减少。   *所以,经过实际测试,只需监听任一轴的加速度大于14的时候,改变你需要的设置   *就OK了~~~   */   if(Math.abs(values[0])>14||Math.abs(values[1])>14||Math.abs(values[2])>14) { clean_btn.setText("搖一搖"); vibrator.vibrate(500); } }}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) { //当传感器精度改变时回调该方法,Do nothing. }}

应该还算比较简单,对了不要忘记加权限:

<uses-permission android:name="android.permission.VIBRATE"/>

更多相关文章

  1. 初学Android,FrameLayout霓虹灯效果(五)
  2. android 拖动条改变屏幕亮度
  3. Android(安卓)P Launcher APP替换图标不随系统固定格式而改变
  4. 修改标题栏的高度
  5. 当scroll时改变item的背景
  6. Android传感器
  7. 运行时改变Button的android:drawableTop
  8. Android屏幕旋转时Activity不重新调用onCreate的方法
  9. Android中使用jiecaovideoplayer播放视频

随机推荐

  1. MSSQL 首字母替换成大写字母
  2. MSSQL 删除数据库里某个用户所有表里的数
  3. MSSQL 多字段根据范围求最大值实现方法
  4. sqlserver 常用存储过程集锦
  5. sqlserver 中ntext字段的批量替换(updatet
  6. MSSQL汉字转拼音函数实现语句
  7. union组合结果集时的order问题
  8. sqlserver 多表关联时在where语句中慎用t
  9. 目前用到的两个分页存储过程代码
  10. 远程连接局域网内的sql server 无法连接