28

これは、電話をミュート/ミュート解除するための私のコードです。しかし、電話がミュートになっているのかどうかを確認したいのですが、そうでない場合はミュートします。が振動している場合、私はそれを正常にします。

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

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

}
4

2 に答える 2

59

これを試して:

switch( audio.getRingerMode() ){
case AudioManager.RINGER_MODE_NORMAL:
   break;
case AudioManager.RINGER_MODE_SILENT:
   break;
case AudioManager.RINGER_MODE_VIBRATE:
   break;
}
于 2012-08-16T10:48:29.000 に答える
6

私の場合、電話の設定が振動する場合でも、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;
}
于 2015-09-03T03:37:21.333 に答える