how can I detect whether the android phone in Silent mode programmatically
Following code checks if phone is not in silent mode then plays a beep, written in kotlin
:
val manager = getSystemService(Context.AUDIO_SERVICE) as AudioManager
manager.setStreamVolume(AudioManager.STREAM_MUSIC, 10, 0)
val notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)
val player: MediaPlayer = MediaPlayer.create(applicationContext, notification)
if(manager.ringerMode != AudioManager.RINGER_MODE_SILENT)
player.start()
Use the getRingerMode()
method in AudioManager
.
AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
switch (am.getRingerMode()) {
case AudioManager.RINGER_MODE_SILENT:
Log.i("MyApp","Silent mode");
break;
case AudioManager.RINGER_MODE_VIBRATE:
Log.i("MyApp","Vibrate mode");
break;
case AudioManager.RINGER_MODE_NORMAL:
Log.i("MyApp","Normal mode");
break;
}