Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo inhibir la advertencia de "música fuerte puede dañar su audición …" en Android

Tengo una aplicación de Android para una tableta de Samsung que utiliza un dispositivo externo que extrae su energía de la toma de auriculares de la tableta. Cuando el dispositivo externo se enciende (mediante un máximo de programación del volumen), Android muestra brevemente un popup de advertencia diciendo: "La música fuerte puede dañar tu audiencia si la escuchas por demasiado tiempo …" Me gustaría que ese mensaje no se mostrará.

Aquí está la línea ofensiva del código:

mAudioMgr.setStreamVolume(AudioManager.STREAM_MUSIC, mAudioMgr.getStreamMaxVolume(AudioManager.STREAM_MUSIC), 0); 

No es una opción para sólo girar a la mitad. De hecho, he visto la pantalla de la tableta de la advertencia (al cambiar el volumen a mano), incluso en los ajustes de volumen inferior a la configuración máxima.

Y sí, grabo el volumen original, y lo restauro cuando terminemos con el dispositivo externo.

Gracias por cualquier sugerencia.

3 Solutions collect form web for “Cómo inhibir la advertencia de "música fuerte puede dañar su audición …" en Android”

Puesto que no se puede deshabilitar el mensaje de sistema, y ​​también tendrá un problema cuando el usuario disminuye manualmente el volumen, le sugiero que haga una serie de controles que ayudarán con eso. Para maximizar el volumen:

 public void maxVolume() { AudioManager audioManager = (AudioManager)context.getSystemService(this.AUDIO_SERVICE); while ( audioManager.getStreamVolume(AudioManager.STREAM_MUSIC) < audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)) { audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, 0); } } 

Para evitar que los usuarios cambien manualmente el volumen:

 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) || (keyCode == KeyEvent.KEYCODE_VOLUME_UP) || (keyCode == KeyEvent.KEYCODE_VOLUME_MUTE)) { return true; } return super.onKeyDown(keyCode, event); } 

Puede llamar a maxVolume () en su método onCreate y luego llamarlo justo antes de empezar a usar el procedimiento de salida de jack para asegurarse de que el sistema no ha cambiado su volumen. Alternativamente, puede registrar un oyente para escuchar los cambios de volumen, make maxVolume () estático y llámelo desde el listener. Espero que te ayude!

Sé que esta pregunta es muy antigua, pero solo he tropezado con este problema yo mismo. Pensé que añadiría a las respuestas dadas con lo que encontré en caso de que ayude a alguien que sucede sobre esto.

Uno de los puestos aquí menciona que la advertencia no está en la AOSP, pero esto no es cierto. Por favor haga referencia a la clase VolumePanel :: SafteyWarning aquí: VolumePanel :: SafetyWarning

Una vez que examine a través de la clase SafetyWarning notará que hay un método oculto dentro de la clase AudioManager llamada disableSafeMediaVolume . Puede, mediante la reflexión, invocar este método oculto con bastante facilidad, pero si lo hace, obtendrá una excepción de seguridad, ya que requiere el permiso del sistema "android.permission.STATUS_BAR_SERVICE".

Así que … con eso dicho, el diálogo por lo que puedo decir, no puede ser suprimido mediante programación a menos que tenga este permiso de sistema.

Lo que terminamos haciendo con la bendición de la gestión de productos es que almacenamos en caché la configuración de volumen en SharedPreferences y luego la restauramos del caché cuando se inicia la aplicación. Si está por encima del umbral para el diálogo de advertencia entonces se mostrará la advertencia y el usuario sólo tendrá que presionar OK para obtener la configuración de volumen que desee, pero al menos no tendrán que restablecer manualmente el volumen .

Un par de otras notas sobre por qué algunos no ven este diálogo. Sólo lo verá si tiene auriculares (o auriculares o auriculares con cable) enchufados en el dispositivo e intenta ajustar el flujo de volumen de medios sobre un cierto umbral (en el Samsung Galaxy Tab A este umbral es del 60%). Si pulsa Aceptar en el cuadro de diálogo, no volverá a mostrarse a menos que reinicie el dispositivo o desconecte los auriculares y vuelva a enchufarlos (con el volumen ajustado en o por encima del umbral).

Espero que esto ayude a alguien.

No sé si se puede considerar esta gran parte de una respuesta, pero estoy bastante seguro de que no puede eliminar ese mensaje como su visualizado por el sistema de forma automática y no por algo que puede acceder. Mi Samsung Galaxy S3 hace lo mismo.

También de lo que puedo leer en la red de algunos dispositivos Android también bajar el volumen cuando se pone en un palo para "no dañar su audiencia".

¿Puede anular la notificación mostrando su propia notificación justo antes o después, tal vez? La notificación es sólo una Toast estándar.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.