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

问题描述:

这是我的静音/取消静音手机的代码。但我想检查一下电话是否静音,如果不是,我会静音。如果在振动,那么我会使它正常。如何检查手机是否静音,振动或响亮在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); 

} 

试试这个:

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

谢谢。那是快:) – senzacionale 2012-08-16 11:06:56

+0

senzacionale,欢迎:) – 2012-08-16 11:19:25

在我来说,我发现,即使我的手机设置为振动,它会当它沉寂返回AudioManager.RINGER_MODE_SILENT,所以我找到了一种方法来检查如果再振动模式:

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; 
}