2012-08-16 4 views
26

Dies ist mein Code zum Stummschalten/Stummschalten des Telefons. Aber ich würde gerne überprüfen, ob das Telefon bereits stummgeschaltet ist und wenn nicht, werde ich es stummschalten. Wenn es vibriert, werde ich es normal machen.So überprüfen Sie, ob das Telefon stumm, vibrierend oder laut ist.

Kann ich das irgendwie überprüfen?

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

} 

Antwort

47

versuchen Sie dies:

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

du danke. das war schnell :) – senzacionale

+0

senzacionale, willkommen :) –

5

In meinem Fall habe ich herausgefunden, dass selbst wenn meine Telefoneinstellungen zu vibrieren, wird es AudioManager.RINGER_MODE_SILENT zurück, wenn es Ruhe ist, so fand ich einen Weg, der überprüfen Vibrationsmodus, wenn dann:

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

Und das ganze Bild zu bekommen, um herauszufinden, ob Rufton ist:

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