65 votes

Comment puis-je détecter si le téléphone Android est en mode silencieux de manière programmatique ?

Comment identifier si le téléphone est en mode silencieux ou non ?

J'utilise Android 1.5. J'ai essayé d'utiliser "Android.provider.Settings.ACTION_SOUND_SETTINGS". Cela ne fonctionne pas.

160voto

Dave Webb Points 90034

Utilisez le [getRingerMode() méthode dans AudioManager](http://developer.android.com/intl/fr/reference/android/media/AudioManager.html#getRingerMode()) .

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

0 votes

Salut Dave, y a-t-il un moyen de basculer le mode silencieux ainsi que le mode vibrant de manière programmée.

4 votes

setRingerMode() en AudioManager vous permet de changer le mode de sonnerie.

1 votes

Bonjour Dave, je peux gérer le mode silencieux en utilisant am.setRingerMode(AudioManager.RINGER_MODE_SILENT) ; mais la gestion du mode vibration en utilisant AudioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_OFF) ; ne fonctionne pas, aucun indice.

0voto

Mohsen Emami Points 124

Le code suivant vérifie si le téléphone n'est pas en mode silencieux puis émet un bip, écrit en 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()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X