2012-08-16 187 views
26

這是我的靜音/取消靜音手機的代碼。但我想檢查一下電話是否靜音,如果不是,我會靜音。如果在振動,那麼我會使它正常。如何檢查手機是否靜音,振動或響亮在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); 

} 

回答

47

試試這個:

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

5

在我來說,我發現,即使我的手機設置爲振動,它會當它沉寂返回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; 
} 
相關問題