Android Notification Builder: Cómo setSound para que el sonido se reproduzca en un looper

Estoy implementando la notificación como a continuación. El sonido predeterminado de la alarma está jugando bien, pero sólo por una vez. Todo lo que quiero es reproducirlo repetidamente hasta que se registre el grifo.

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.ic_launcher) .setContentTitle("I Am Fine") .setStyle(new NotificationCompat.BigTextStyle() .bigText(NOTIFICATION_MESSAGE)) .setContentText(NOTIFICATION_MESSAGE) .setAutoCancel(true) .setDefaults(Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE); Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); mBuilder.setSound(alarmSound,AudioManager.STREAM_MUSIC); 

El segundo parámetro de setSound no muestra ningún efecto. Por favor ayuda !

3 Solutions collect form web for “Android Notification Builder: Cómo setSound para que el sonido se reproduzca en un looper”

Debe utilizar FLAG_INSISTENT para la notificación. De la documentación : –

Public static final int FLAG_INSISTENT

Bit a ser ejecutado en el campo de banderas que si se establece, el audio se repetirá hasta que se cancele la notificación o se abra la ventana de notificación.

Valor constante: 4 (0x00000004)

  NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); Uri soundUri = RingtoneManager .getDefaultUri(RingtoneManager.TYPE_RINGTONE); NotificationCompat.Builder mBuilder = new NotificationCompat.Builder( getApplicationContext()).setSmallIcon(R.drawable.ic_launcher) .setContentTitle("title").setContentText("message") .setSound(soundUri); // This sets the sound to play Notification mNotification = mBuilder.build(); mNotification.flags |= Notification.FLAG_INSISTENT; // Display notification notificationManager.notify(1, mNotification); 

He llamado esto bajo el cuerpo del método de SendNotification.

 try { Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); PlaySound(this,notification); } catch (Exception e) { e.printStackTrace(); } 

Definición de PlaySound es la siguiente:

 private void PlaySound(Context context,Uri alert){ try{ mPlayer=new MediaPlayer(); mPlayer.setDataSource(context,alert); final AudioManager am=(AudioManager) getSystemService(Context.AUDIO_SERVICE); if(am.getStreamVolume(AudioManager.STREAM_ALARM)!=0); { mPlayer.setAudioStreamType(AudioManager.STREAM_ALARM); mPlayer.prepare(); mPlayer.setLooping(true); mPlayer.start(); } }catch(IOException e) { Log.i("AlaramReciever", "no audio file"); } } 

Para detener el sonido cuando se hace una notificación, he cambiado el objeto MediaPlayer a un objeto estático público como se muestra a continuación:

 if(GCMNotificationIntentService.mPlayer != null) { try{ GCMNotificationIntentService.mPlayer.stop(); GCMNotificationIntentService.mPlayer.release(); }finally { GCMNotificationIntentService.mPlayer = null; } } 

La funcionalidad deseada se logra, pero sigo recibiendo después de RunTimeException

Handler android.media.MediaPlayer $ EventHandler que está enviando un mensaje a un Handler en un hilo muerto como onDestroy inmediatamente se llama. Hay alguna forma de prevenir esto ?

Debe silenciar los sonidos de notificación y simplemente reproducir el archivo de sonido de su aplicación mediante un reproductor de medios. Y establezca la instancia del reproductor multimedia en bucle.

Después de esto, debe agregar una variable de intención pendiente con su notificación, una vez que el usuario toque en la notificación, se desencadene el evento asociado y puede detener la instancia del reproductor multimedia desde aquí.

  • Notificación de pantalla de bloqueo de Android Vista personalizada con ripple y doble toque
  • Manejo de la notificación de la barra de estado antes de que se muestre
  • ¿Cómo saber si las notificaciones están habilitadas o no para una aplicación en android?
  • Cómo cancelar / cancelar la notificación de la barra de estado en android mediante programación
  • Evitar que el usuario rechace la notificación
  • Sonido de notificación de Android
  • Notificación de Android no se rechaza al hacer clic / deslizar
  • ¿Cómo hacer la notificación en android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.