2012-08-16 8 views
26

これはコードをミュート/ミュート解除するコードです。しかし、私は電話がミュートでalreayであるかどうかをチェックしたいと思います。そうでなければ私はそれをミュートします。もし振動しているなら、私はそれを正常にします。アンドロイドで電話がミュートであるかどうかを確認する方法

どういうわけかこの状態を確認できますか?

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

この試してみてください。私は自分の携帯電話の設定が振動している場合でも、それは沈黙であるので、私がチェックする方法を見つけたとき、それはAudioManager.RINGER_MODE_SILENTを返すことが分かった私の場合は

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

ありがとうございます。それは速かった:) – senzacionale

+0

senzacionale、ようこそ:) –

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; 
} 
関連する問題