notificationcompat - La llamada requiere API nivel 16(el mínimo actual es 14): android.app.Notification.Builder#build
notifications android example (5)
La documentación dice que Notification.Builder se agrega en el nivel 11 de la API. ¿Por qué obtengo este error de pelusa?
La llamada requiere API nivel 16 (el mínimo actual es 14): android.app.Notification.Builder # build
notification = new Notification.Builder(ctx)
.setContentTitle("Title").setContentText("Text")
.setSmallIcon(R.drawable.ic_launcher).build();
Manifiesto:
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="17" />
¿Me estoy perdiendo de algo?
Corrígeme si estoy equivocado, pero la API se agrega en el nivel 11, ¿verdad? Agregado en el nivel de API 11
Android Lint es una nueva herramienta presentada en ADT 16 (y Tools 16) que escanea las fuentes del proyecto de Android en busca de posibles errores. Está disponible tanto como una herramienta de línea de comando, como integrada con Eclipse
http://tools.android.com/tips/lint
Para la lista de verificaciones de pelusa
tools.android.com/tips/lint-checks
Para suprimir la advertencia de pelusas
http://tools.android.com/tips/lint/suppressing-lint-warnings
http://developer.android.com/reference/android/app/Notification.Builder.html
Si su aplicación admite versiones de Android tan antiguas como el nivel 4 de la API, puede utilizar NotificationCompat.Builder, disponible en la biblioteca de soporte de Android.
Para la biblioteca de soporte
http://developer.android.com/tools/extras/support-library.html
El consejo sobre el nivel de API que necesita ser 16 es correcto. Esto funcionó para mí
if (Build.VERSION.SDK_INT < 16) {
nm.notify(MY_NOTIFICATION_ID, notificationBuilder.getNotification());
} else {
nm.notify(MY_NOTIFICATION_ID, notificationBuilder.build());
}
Estaba teniendo el problema de que la notificación funcionaba bien en los dispositivos más nuevos, pero no en Android 4.0.4 (API de nivel 15). Obtengo un eclipse de advertencia de depreciación. @SuppressWarnings ("desaprobación") no lo oculta por completo, pero creo que probablemente sea útil.
Puedes usar de esto:
if (Build.VERSION.SDK_INT < 16) {
Notification n = new Notification.Builder(this)
.setContentTitle("New mail from " + "[email protected]")
.setContentText("Subject")
.setSmallIcon(R.mipmap.ic_launcher)
.setContentIntent(pIntent)
.setAutoCancel(true).getNotification();
NotificationManager notificationManager =
(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(0, n);
} else {
Notification n = new Notification.Builder(this)
.setContentTitle("New mail from " + "[email protected]")
.setContentText("Subject")
.setSmallIcon(R.mipmap.ic_launcher)
.setContentIntent(pIntent)
.setAutoCancel(true).build();
NotificationManager notificationManager =
(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(0, n);
}
NotificationBuilder.build() requiere API nivel 16 o superior. Cualquier cosa entre los niveles API 11 y 15, debe usar NotificationBuilder.getNotification() . Entonces usa
notification = new Notification.Builder(ctx)
.setContentTitle("Title").setContentText("Text")
.setSmallIcon(R.drawable.ic_launcher).getNotification();