手机翻背面即静音震动

 

主要是SensorManager和AudioManager的应用

private SensorManager mSensorManager01;
private int strRingerMode;

mSensorManager01
= (SensorManager)getSystemService(Context.SENSOR_SERVICE);

 

取得当前的AudioManager模式

  AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); if (audioManager != null){ /* RINGER_MODE_NORMAL | RINGER_MODE_SILENT | RINGER_MODE_VIBRATE */ strRingerMode = audioManager.getRingerMode(); }

 

判断当前是何种模式

    switch(strRingerMode){ /* 正常模式 */
      case AudioManager.RINGER_MODE_NORMAL: break;
/* 静音模式 */ case AudioManager.RINGER_MODE_SILENT: break;
/* 震动模式 */ case AudioManager.RINGER_MODE_VIBRATE: break; }

 

注册一个SensorEventListener

mSensorManager01.registerListener (mSensorListener,mSensorManager01.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);

 

  /* 建立SensorListener捕捉onSensorChanged事件 */
  private final SensorEventListener mSensorListener = new SensorEventListener(){ private float x, y, z; @Override public void onAccuracyChanged(Sensor sensor, int accuracy){} @Override public void onSensorChanged(SensorEvent event){ synchronized(mSensorManager01){ switch (event.sensor.getType()){ case Sensor.TYPE_ACCELEROMETER: x = event.values[0]; y = event.values[1]; z = event.values[2]; if(z>9){ /* 正面向上 变更为正常模式*/ ChangeToNormalMode(); }else if(z<-9){// 正面向下
            ChangeToSilentMode();// 先设定为静音模式 
 ChangeToVibrateMode();// 再设定为震动模式
          }else if(x>9){ /* 正面向左 */ }else if(x<-9){ /* 正面向右 */ }else if(y>9){ /* 手掌正翻向自己直立 */ }else if(y<-9){ /* 手掌反翻反向直立 */ }else{ /* 其他无法判別 */ } break; } } } };

 

  /* 变更为静音模式 */
  private void ChangeToSilentMode(){ AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); if (audioManager != null){ /* RINGER_MODE_NORMAL | RINGER_MODE_SILENT | RINGER_MODE_VIBRATE */ audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT); strRingerMode = audioManager.getRingerMode(); } }

 

  /* 变更为震动模式 */
  private void ChangeToVibrateMode(){ AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); if (audioManager != null){ /* 调用setRingerMode方法,设定模式 */ audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE); /* RINGER_MODE_NORMAL | RINGER_MODE_SILENT | RINGER_MODE_VIBRATE */ strRingerMode = audioManager.getRingerMode(); } }

 

  /* 变更为正常模式 */
  private void ChangeToNormalMode(){ AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); if (audioManager != null){ /* RINGER_MODE_NORMAL | RINGER_MODE_SILENT | RINGER_MODE_VIBRATE */ audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL); strRingerMode = audioManager.getRingerMode(); } }

 

取消注册mSensorListener

    mSensorManager01.unregisterListener(mSensorListener);

 

你可能感兴趣的:(手机)