34

enter image description hereThe documentation says Notification.Builder is Added in API level 11. Why I get this lint error?

Call requires API level 16 (current min is 14): android.app.Notification.Builder#build

notification = new Notification.Builder(ctx)
                .setContentTitle("Title").setContentText("Text")
                .setSmallIcon(R.drawable.ic_launcher).build();

Manifest:

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="17" />

Am I missing something?

Correct me if I am wrong but the API is added in level 11, right? Added in API level 11

4

5 回答 5

59

NotificationBuilder.build()需要 API 级别 16 或更高。API 级别 11 和 15 之间的任何内容都应该使用NotificationBuilder.getNotification()。所以使用

notification = new Notification.Builder(ctx)
                .setContentTitle("Title").setContentText("Text")
                .setSmallIcon(R.drawable.ic_launcher).getNotification();
于 2013-05-08T16:44:47.407 回答
17

关于 API 级别需要为 16 的提示是正确的。这对我有用

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("deprecation") 并没有完全隐藏它,但我认为这可能会有所帮助。

于 2014-12-31T09:56:38.433 回答
5

Android Lint 是 ADT 16(和 Tools 16)中引入的一个新工具,它可以扫描 Android 项目源中的潜在错误。它既可以作为命令行工具使用,也可以与 Eclipse 集成

http://tools.android.com/tips/lint

对于 lint 检查列表

http://tools.android.com/tips/lint-checks

用于抑制 lint 警告

http://tools.android.com/tips/lint/suppressing-lint-warnings

http://developer.android.com/reference/android/app/Notification.Builder.html

如果您的应用支持早于 API 级别 4 的 Android 版本,您可以改用 Android 支持库中提供的 NotificationCompat.Builder。

对于支持库

http://developer.android.com/tools/extras/support-library.html

于 2013-05-08T16:44:03.320 回答
1

您可以从此使用:

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);
            }
于 2015-11-12T11:38:01.253 回答
0

我在 android studio 中遇到了同样的问题。我对build.gradle(module:app)文件做了一些小的改动,问题已经解决了。 在此处输入图像描述

同步项目后。

于 2016-08-01T12:37:00.547 回答