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í.

  • Haga clic en notificación para ingresar mi aplicación en android
  • ¿Por qué desaparece la notificación de "descarga completada" en los dispositivos Gingerbread?
  • Android Remoteviews para notificaciones ampliadas
  • Programo una notificación local en un momento específico, utilizando el conmutador, pero su activación no a tiempo establecido
  • Cómo abrir la página de fragmentos, cuando se presiona una notificación en android
  • Notificación Heads-up - Android Lollipop
  • Tratando de crear una notificación simple en android
  • Cómo obtener el nombre del tono en Android?
  • NotificationListenerService no funciona - incluso después de dar permiso
  • Cómo crear varias notificaciones de la barra de estado en android
  • Icono de acción de notificación de Android Tamaños en diseño de material
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.