如何在Android中检查手机是静音,振动还是响亮

时间:2012-08-16 10:41:41

标签: android

这是我的静音/取消静音手机的代码。但我想检查手机是否静音,如果不是,那么我将静音。如果是振动,那么我会使它正常。

我能以某种方式检查这些状态吗?

public void changeRingerMode(Context context){

AudioManager audio = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);

    /**
    * To Enable silent mode.....
    */
    audio.setRingerMode(AudioManager.RINGER_MODE_SILENT);

    /**
    * To Enable Ringer mode.....
    */
    audio.setRingerMode(AudioManager.RINGER_MODE_NORMAL);

}

2 个答案:

答案 0 :(得分:54)

试试这个:

switch( audio.getRingerMode() ){
case AudioManager.RINGER_MODE_NORMAL:
   break;
case AudioManager.RINGER_MODE_SILENT:
   break;
case AudioManager.RINGER_MODE_VIBRATE:
   break;
}

答案 1 :(得分:5)

在我的情况下,我发现即使我的手机设置振动,当它静音时它会返回public static boolean checkVibrationIsOn(Context context){ boolean status = false; AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE); if(am.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE){ status = true; } else if (1 == Settings.System.getInt(context.getContentResolver(), "vibrate_when_ringing", 0)) //vibrate on status = true; return status; } ,所以我找到了一种检查振动模式的方法:

public static boolean checkRingerIsOn(Context context){
    AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
    return am.getRingerMode() == AudioManager.RINGER_MODE_NORMAL;
}

为了全面了解,找出铃声是否开启:

undefined