文档说在API级别11中添加了Notification.Builder。 为什么我会得到这个lint错误?
调用需要API级别16(当前最小值为14):android.app.Notification.Builder #build
notification = new Notification.Builder(ctx)
.setContentTitle("Title").setContentText("Text")
.setSmallIcon(R.drawable.ic_launcher).build();
清单:
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="17" />
我错过了什么吗?
如果我错了,请纠正我,但是在11级添加了API,对吗? Added in API level 11
答案 0 :(得分:58)
NotificationBuilder.build()要求API级别16或更高级别。 API级别11和之间的任何内容15你应该使用NotificationBuilder.getNotification()。所以使用
notification = new Notification.Builder(ctx)
.setContentTitle("Title").setContentText("Text")
.setSmallIcon(R.drawable.ic_launcher).getNotification();
答案 1 :(得分:16)
关于需要16的API级别的提示是正确的。这对我有用
if (Build.VERSION.SDK_INT < 16) {
nm.notify(MY_NOTIFICATION_ID, notificationBuilder.getNotification());
} else {
nm.notify(MY_NOTIFICATION_ID, notificationBuilder.build());
}
我遇到的问题是,通知在较新的设备上正常工作,但在Android 4.0.4(API级别15)上却没有。我确实得到了eclipse的弃用警告形式。 @SuppressWarnings(&#34;弃用&#34;)并没有完全隐藏它,但我认为这可能有帮助。
答案 2 :(得分:5)
Android Lint是ADT 16(和工具16)中引入的一种新工具,可以扫描Android项目源以查找潜在的错误。它既可以作为命令行工具使用,也可以与Eclipse
集成http://tools.android.com/tips/lint
有关棉绒支票清单
http://tools.android.com/tips/lint-checks
用于抑制棉绒警告
http://tools.android.com/tips/lint/suppressing-lint-warnings
http://developer.android.com/reference/android/app/Notification.Builder.html
如果您的应用支持的API版本与API级别4一样旧,则可以使用Android支持库中提供的NotificationCompat.Builder。
对于支持库
http://developer.android.com/tools/extras/support-library.html
答案 3 :(得分:1)
You can use from this :
if (Build.VERSION.SDK_INT < 16) {
Notification n = new Notification.Builder(this)
.setContentTitle("New mail from " + "test@gmail.com")
.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 " + "test@gmail.com")
.setContentText("Subject")
.setSmallIcon(R.mipmap.ic_launcher)
.setContentIntent(pIntent)
.setAutoCancel(true).build();
NotificationManager notificationManager =
(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(0, n);
}
答案 4 :(得分:0)