vibracion tono teclado tactil sonido quitar poner notificaciones notificacion llamada desactivar como celular cambiar android notifications android-audiomanager

android - tono - ¿Cómo establecer el volumen del sonido de notificación mediante programación?



desactivar vibracion notificaciones android (3)

Antes que nada, espero que se den cuenta de que están intentando jugar dos notificaciones una detrás de otra, por lo que podría haber un conflicto al respecto. AudioManager.FLAG_PLAY_SOUND y r.play() intentarán reproducir el sonido. Por lo general, es suficiente para darle al usuario un tipo de información, ya sea mediante la interfaz de usuario o al tocar el sonido con un nuevo volumen. Te sugiero que elimines uno de los indicadores. Si no necesitas ninguno, solo dalo 0.

Al llegar a la pregunta principal, no estoy seguro de si puede establecer el nivel de volumen en 0. Intente poner 1, como

manager.setStreamVolume(AudioManager.STREAM_NOTIFICATION, 1, AudioManager.FLAG_SHOW_UI);

Si desea silenciar la notificación, intente usar setStreamMute , que es equivalente a configurar el volumen a 0.

Tengo este método en mi actividad principal

private void beep() { AudioManager manager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); manager.setStreamVolume(AudioManager.STREAM_NOTIFICATION, 0, AudioManager.FLAG_SHOW_UI + AudioManager.FLAG_PLAY_SOUND); Uri notification = RingtoneManager .getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification); r.play(); }

Según entiendo, el volumen del sonido de notificación debe ser regulado por STREAM_NOTIFICATION. Pero la notificación siempre se reproduce con el mismo volumen a pesar de ese número de volumen en el método setStreamVolume. ¿Porqué es eso?


Fui de otra manera. No es exactamente la respuesta a mi pregunta, sino la apropiada. Cuando reproduzco la notificación en STREAM_MUSIC todo está bien. Entonces la notificación se reproduce exactamente con el volumen que paso como parámetro de la función

private void beep(int volume) { AudioManager manager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); manager.setStreamVolume(AudioManager.STREAM_MUSIC, volume, 0); Uri notification = RingtoneManager .getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); MediaPlayer player = MediaPlayer.create(getApplicationContext(), notification); player.start(); }


Escriba una función como sigue, o copie y pegue lo siguiente,

public void ringtone() { try { Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification); r.play(); } catch (Exception e) {} }

y llame al ringtone() cuando desee hacer una notificación de sonido.