La documentation indique que Notification.Builder est ajouté au niveau d'API 11. Pourquoi j'obtiens cette erreur de peluche?
L'appel nécessite le niveau d'API 16 (la valeur minimale actuelle est de 14): Android.app.Notification.Builder # build
notification = new Notification.Builder(ctx)
.setContentTitle("Title").setContentText("Text")
.setSmallIcon(R.drawable.ic_launcher).build();
Manifeste:
<uses-sdk
Android:minSdkVersion="14"
Android:targetSdkVersion="17" />
Suis-je en train de manquer quelque chose?
Corrigez-moi si je me trompe mais l'API est ajoutée au niveau 11, non? Ajouté au niveau API 11
NotificationBuilder.build () nécessite l'API de niveau 16 ou supérieur. Tout ce qui se situe entre les niveaux d'API 11 et 15, vous devez utiliser NotificationBuilder.getNotification () . Alors utilisez
notification = new Notification.Builder(ctx)
.setContentTitle("Title").setContentText("Text")
.setSmallIcon(R.drawable.ic_launcher).getNotification();
L'astuce sur le niveau d'API devant être 16 est correcte. Cela a fonctionné pour moi
if (Build.VERSION.SDK_INT < 16) {
nm.notify(MY_NOTIFICATION_ID, notificationBuilder.getNotification());
} else {
nm.notify(MY_NOTIFICATION_ID, notificationBuilder.build());
}
J'avais le problème où la notification fonctionnait bien sur les appareils plus récents mais pas sur Android 4.0.4 (API niveau 15). J'obtiens un formulaire d'avertissement de dépréciation Eclipse. @SuppressWarnings ("dépréciation" ) ne le cache pas entièrement, mais je pense que cela est probablement utile.
Android Lint est un nouvel outil introduit dans ADT 16 (et Tools 16) qui scanne Android sources du projet pour les bugs potentiels. Il est disponible à la fois comme outil de ligne de commande, et intégré à Eclipse
http://tools.Android.com/tips/lint
Pour la liste des vérifications de peluches
http://tools.Android.com/tips/lint-checks
Pour supprimer l'avertissement de peluches
http://tools.Android.com/tips/lint/suppressing-lint-warnings
http://developer.Android.com/reference/Android/app/Notification.Builder.html
Si votre application prend en charge les versions de Android aussi anciennes que l'API niveau 4, vous pouvez utiliser à la place NotificationCompat.Builder, disponible dans le Android Bibliothèque de support.
Pour la bibliothèque de support
http://developer.Android.com/tools/extras/support-library.html
Vous pouvez utiliser à partir de ceci:
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);
}