oreo - how to create notification channel in android
Notification.Builder(contexto) desaprobado Android O (3)
Debe definir un ID de canal único (por ejemplo, "MyChannelId_01") y llamar a NotificationCompat.Builder (ctx, "MyChannelId_01"). La Notificación construida se publicará en este NotificationChannel "MyChannelId_01".
Esto le permite definir la importancia de la notificación (esto controla la forma en que las notificaciones enviadas a este canal son. El valor es IMPORTANCE_UNSPECIFIED, IMPORTANCE_NONE, IMPORTANCE_MIN, IMPORTANCE_LOW, IMPORTANCE_DEFAULT o IMPORTANCE_HIGH).
Puedes encontrar un ejemplo aquí: Creando un canal de notificación
Esta pregunta ya tiene una respuesta aquí:
- NotificationCompat.Builder en desuso en Android O 8 respuestas
Notification.Builder (contexto) ha quedado en desuso recientemente con la sede de Notification Channels en Android O.
PROBLEMA:
Después de usar Notification.Builder(context, StringID)
lugar de Notification.Builder(context)
, recibí una notificación a mi dispositivo Android O.
Sin embargo, después de probar eso en un Android 23 (M), no recibí una notificación. Depuré mi código y simplemente dejé de ejecutarlo una vez que el depurador llegó a la línea posterior a Notification.Builder (contexto, StringID) en Android 23 (M).
FIJAR:
Para solucionar este problema, utilicé la condición if / else para segregar entre los dispositivos Android O y el resto de otros dispositivos.
Tengo el siguiente fragmento de código:
Notification.Builder notificationBuilder;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
notificationBuilder = new Notification.Builder(mContext,
mContext.getResources().getString(R.string.notification_id_channel));
} else {
notificationBuilder = new Notification.Builder(mContext);
}
Lint en Android Studio muestra la siguiente línea de desaprobación:
PREGUNTA:
¿Hay alguna manera de deshacerse de esa línea de advertencia de depreciación?
Su solución es utilizar NotificationCompat.Builder(Context context, String channelId)
. Si usa esto, no tiene que verificar el nivel de API, el Generador ignora la identificación del canal en los dispositivos pre-Oreo.
Lo he probado en API 15, 22, 23 y 26 y funciona perfectamente.
Tuve el mismo problema y, como estoy apuntando a Android 22 y 24, acabo de hacer esto: NotificationCompat.Builder notification = new NotificationCompat.Builder (MainActivity.this, "")
Estoy seguro de que alguien dirá que esto es un pirateo pero se deshace de la advertencia y no tengo problemas.
Parece que pasar una cadena vacía funciona para <android 26.
Tal vez alguien más pueda decir si esto causa problemas para 26.
Gracias