随笔 - 91,  文章 - 0,  评论 - 1,  阅读 - 87621

 

主要是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);

 

posted on   道无涯  阅读(419)  评论(0编辑  收藏  举报
(评论功能已被禁用)

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示