Normal Notification Builder no muestra notificaciones en Android O.
¿Cómo puedo mostrar notificaciones en Android 8 Oreo?
¿Hay algún código nuevo que agregar para mostrar notificaciones en Android O?
Normal Notification Builder no muestra notificaciones en Android O.
¿Cómo puedo mostrar notificaciones en Android 8 Oreo?
¿Hay algún código nuevo que agregar para mostrar notificaciones en Android O?
Respuestas:
En Android O es imprescindible usar un canal con su generador de notificaciones
a continuación hay un código de muestra:
O con compatibilidad de manejo por:
o si quieres una solución simple, usa el siguiente código:
Actualizaciones: referencia NotificationCompat.Builder
Este constructor quedó en desuso en el nivel de API 26.0.0, por lo que debe usar
así que no es necesario
setChannelId
con el nuevo constructor.Y debe usar la última biblioteca de AppCompat actualmente 26.0.2
Fuente del canal de desarrolladores de Android en Youtube
Además, puedes consultar los documentos oficiales de Android
fuente
NotificationCompat.Builder(Context, String)
constructor? Estoy usando (entre otras cosas): -compileSdkVersion 26
-buildToolsVersion '26.0.2'
-compile 'com.android.support:appcompat-v7:26.0.0-beta2'
y aún así no acepta mi constructor usando un Context and String. ¿Algunas ideas?Aquí publico algunas funciones de solución rápida con manejo de intenciones
fuente
Además de esta respuesta , debe crear el canal de notificación antes de que pueda usarse.
También debe usar canales solo si su targetSdkVersion es 26 o superior.
Si está utilizando NotificationCompat.Builder, también necesita actualizar a la versión beta de la biblioteca de soporte: https://developer.android.com/topic/libraries/support-library/revisions.html#26-0-0- beta2 (para poder llamar
setChannelId
al generador de compatibilidad).Tenga cuidado ya que esta actualización de la biblioteca eleva minSdkLevel a 14.
fuente
fuente
Si no puede recibir la notificación push en la versión 26+ SDK?
NotificationCompat.Builder notifyBuilder = new NotificationCompat.Builder (context, channel_id)
-> Aquí recibirá una notificación push usando
channel_id
automáticas en su dispositivo, que consiste en una versión de 26+ SDK.-> Porque, el
NotificationCompat.Builder(context)
método está en desuso ahora usará una versión actualizada que tiene dos parámetros, uno es el contexto y el otro es channel_id.->
NotificationCompat.Builder(context, channel_id)
método actualizado. intentalo.-> En la versión 26+ SDK del dispositivo, creará channel_id cada vez.
fuente
Utilice esta clase para la notificación de Android 8
fuente
Prueba este código:
fuente
Aplicación de demostración de notificaciones de Android para Android O, así como versiones inferiores de API. Aquí está la mejor aplicación de demostración en GitHub-Demo 1 y GitHub-Demo 2 .
fuente
Este es un error en la versión 11.8.0 de la API de Firebase, por lo que si reduce la versión de API no enfrentará este problema.
fuente
Estaba teniendo el mismo problema en Oreo y descubrí que si primero creas tu canal con NotificationManager.IMPORTANCE_NONE, luego lo actualizas más tarde, el canal mantendrá el nivel de importancia original.
Esto está respaldado por la documentación de capacitación de Notificación de Google que dice:
Eliminar y volver a instalar la aplicación te permitirá restablecer los comportamientos del canal.
Es mejor evitar usar IMPORTANCE_NONE a menos que desee suprimir las notificaciones para ese canal, es decir, hacer uso de notificaciones silenciosas.
fuente
Así es como lo haces
Lea el tutorial completo en => https://developer.android.com/training/notify-user/build-notification
fuente
CHANNEL_ID
en NotificationChannel y Notification.Builder debe ser el mismo, pruebe este código:fuente
Bueno, en mi caso, tengo Android 8.1.0 y número de modelo vivo1811 , y he intentado con todas las soluciones anteriores, pero nada funciona.
Así que, por fin, escribí al soporte de Firebase y luego sobre la depuración adicional, recibí esto: "No se pudo transmitir a la aplicación detenida": asegúrese de que la aplicación no se haya detenido por la fuerza " .
Y esta fue la respuesta del equipo de Firebase ->
Aquí OEM significa fabricante de equipos originales .
fuente
Para cualquiera que tenga dificultades con esto después de probar las soluciones anteriores, asegúrese de que la identificación del canal utilizada al crear el canal de notificación sea idéntica a la identificación del canal que configuró en el generador de notificaciones.
fuente
fuente
El siguiente método mostrará la notificación , con texto grande y congelación habilitada (la notificación no se eliminará incluso después de deslizar el usuario). Necesitamos el servicio NotificationManager
Método para eliminar notificaciones
Enlace fuente
fuente
ya en desuso para la versión mayor o igual de Android Oreo. Puede cambiar la implementación para usar
fuente
fuente
El siguiente código funciona para mí en Oreo, puedes probar esto. espero que funcione para ti
private Void sendNotification (Contexto ctx, Título de cadena, Número de notificación int, Mensaje de cadena, Subtexto de cadena, Intención de intención) {
try {
fuente
En Android Oreo, la aplicación de notificación se realiza mediante el uso de canales y la clase NotificationHelper. Debe tener una identificación y un nombre de canal.
Primero tienes que crear una clase NotificationHelper
Cree un botón en el archivo xml de actividad, luego en la actividad principal
Luego ejecuta tu proyecto
fuente
Debe crear un canal de notificación para el nivel de API superior a 26 (oreo).
STRING_ID = stringid channelid es el mismo que en Notification.Builder como este
La identificación del canal en la notificación y en la notificación debe ser la misma. El código completo es así ...
fuente
En primer lugar, si no sabe, desde Android Oreo, es decir, el nivel 26 de API, es obligatorio que las notificaciones se registren con un canal.
En ese caso, muchos tutoriales pueden confundirlo porque muestran un ejemplo diferente de notificación arriba o abajo.
Así que aquí hay un código común que se ejecuta en oreo arriba y abajo:
Video Tutorial: VIDEO DE YOUTUBE
En caso de que quiera descargar esta demo: Enlace GitHub
fuente
fuente