En Android 7 (API nivel 24) mi aplicación no puede silenciar el teléfono (configurar el modo de timbre en silencio)
Tengo una aplicación que silencia el teléfono usando AudioManager y configurando el modo de timbre en silencio con este código:
AudioManager audioManager =
(AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
try {
audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT)
} catch (Exception e) {
e.printStackTrace();
}
Esto funciona con Android 6, pero ahora con Android 7, aparece el siguiente error:
System.err: java.lang.SecurityException: Not allowed to change Do Not Disturb state
System.err: at android.os.Parcel.readException(Parcel.java:1683)
System.err: at android.os.Parcel.readException(Parcel.java:1636)
System.err: at android.media.IAudioService$Stub$Proxy.setRingerModeExternal(IAudioService.java:962)
System.err: at android.media.AudioManager.setRingerMode(AudioManager.java:1022)
System.err: at controllers.SearchResultController.mutePhone(SearchResultController.java:185)
¿Hay algún permiso nuevo que deba solicitar para que esto funcione?
Revisé la lista de permisos de Android, pero no pude encontrar ninguno que pareciera relevante.