如何检查手机在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); } 

Solutions Collecting From Web of "如何检查手机在Android中是否静音,振动或响亮"

尝试这个:

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

在我的情况下,我发现,即使我的手机设置是振动,它会在静音时返回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; }