Notificación que no se muestra

Estudio de caso: necesito un progtwig que agregará una notificación en android. Y cuando alguien hace clic en la notificación, debería llevarlos a mi segunda actividad.

He establecido un código. La notificación debería estar funcionando, pero por alguna razón no está funcionando. La Notification no se muestra en absoluto. No sé qué me estoy perdiendo.

Código de esos archivos:

  Notification n = new Notification.Builder(this) .setContentTitle("New mail from " + "test@gmail.com") .setContentText("Subject") .setContentIntent(pIntent).setAutoCancel(true) .setStyle(new Notification.BigTextStyle().bigText(longText)) .build(); NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); // Hide the notification after its selected notificationManager.notify(0, n); 

Como @dmmh dijo que el código no funcionará sin un ícono. Entonces, después de modificar el código con

.setSmallIcon (R.drawable.icon)

el proyecto funciona perfectamente antes de Oreo.

Pero la notificación de forma oreo necesita NotificationChannel y NotificationCompat.Builder(this) está en desuso, pruébelo:

 private NotificationManager mNotificationManager; NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(mContext.getApplicationContext(), "notify_001"); Intent ii = new Intent(mContext.getApplicationContext(), RootActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, ii, 0); NotificationCompat.BigTextStyle bigText = new NotificationCompat.BigTextStyle(); bigText.bigText(verseurl); bigText.setBigContentTitle("Today's Bible Verse"); bigText.setSummaryText("Text in detail"); mBuilder.setContentIntent(pendingIntent); mBuilder.setSmallIcon(R.mipmap.ic_launcher_round); mBuilder.setContentTitle("Your Title"); mBuilder.setContentText("Your text"); mBuilder.setPriority(Notification.PRIORITY_MAX); mBuilder.setStyle(bigText); mNotificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { NotificationChannel channel = new NotificationChannel("notify_001", "Channel human readable title", NotificationManager.IMPORTANCE_DEFAULT); mNotificationManager.createNotificationChannel(channel); } mNotificationManager.notify(0, mBuilder.build()); 

En realidad, la respuesta de @ tato469 no parece ser correcta. Por otra parte, su pregunta es demasiado vaga porque no menciona lo que está mal o no está funcionando.

Al mirar tu código, asumo que la Notification simplemente no se muestra.

Su notificación no se muestra porque no proporcionó un ícono. A pesar de que la documentación del SDK no menciona que se requiera, de hecho lo es mucho y su Notification no se mostrará sin una.

addAction solo está disponible desde 4.1. Antes de eso, usaría PendingIntent para iniciar una Activity . Parece que especifica un PendingIntent , por lo que su problema está en otra parte. Lógicamente, uno debe concluir que es el ícono que falta.

Te estabas perdiendo el icono pequeño. Cometí el mismo error y el paso anterior lo resolvió.

Según la documentación oficial: un objeto de notificación debe contener lo siguiente:

  1. Un pequeño icono, establecido por setSmallIcon ()

  2. Un título, establecido por setContentTitle ()

  3. Texto detallado, establecido por setContentText ()

  4. En Android 8.0 (nivel de API 26) y superior , un ID de canal de notificación válido, establecido por setChannelId () o proporcionado en el constructor NotificationCompat.Builder al crear un canal.

Ver http://developer.android.com/guide/topics/ui/notifiers/notifications.html

Creo que olvidas el

 addAction(int icon, CharSequence title, PendingIntent intent) 

mira aquí Agregar acción