studio play mediaplayer manager android android-permissions volume mute

manager - mediaplayer android studio



Android mute/unmute teléfono (3)

Mi objetivo es apoyar 2 operaciones:

  • silenciar el teléfono (posiblemente con las vibraciones habilitadas / deshabilitadas), por lo que cuando se recibe una llamada o un sms, no se oirá ningún ruido

  • desactivar el teléfono y restaurar el volumen al estado antes de silenciar el teléfono

¿Cómo puedo hacer esto? ¿Qué permisos se requieren en AndroidManifest?


Este es el permiso para vibrar en el archivo de manifiesto.

<uses-permission android:name="android.permission.VIBRATE" />

Esto es para poner el dispositivo en modo silencioso con vibración.

AudioManager audioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE); audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);

Esto es para poner en el modo de llamada.

AudioManager audioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE); int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_RING); audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL); audioManager.setStreamVolume(AudioManager.STREAM_RING, maxVolume, AudioManager.FLAG_SHOW_UI + AudioManager.FLAG_PLAY_SOUND);


Si lo que desea es deshabilitar el sonido y restaurar la configuración del sonido al estado anterior, esto funcionó para mí.

static int ringstate = 0; private void soundOn(boolean off){ AudioManager audio = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); if(off) { //turn off ringing/sound //get the current ringer mode ringstate = audio.getRingerMode(); if(ringstate!=AudioManager.RINGER_MODE_SILENT) audio.setRingerMode(AudioManager.RINGER_MODE_SILENT);//turn off } else { //restore previous state audio.setRingerMode(ringstate); } }

Esto debería hacer.


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