Подтвердить что ты не робот

Для вызова требуется уровень API 16 (текущий минимум равен 14): android.app.Notification.Builder # build

enter image description here В документации указано, что Notification.Builder добавлен в уровень API 11. Почему я получаю эту ошибку 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" />

Я что-то пропустил?

Исправьте меня, если я ошибаюсь, но API добавлен на уровне 11, правильно? Добавлен в уровень API 11

4b9b3361

Ответ 1

NotificationBuilder.build() требует API уровня 16 или выше. Все, что между уровнями API 11 и 15, следует использовать NotificationBuilder.getNotification(). Поэтому используйте

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

Ответ 2

Совет о уровне 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). Я получаю сообщение об исключении из затухания. @SuppressWarnings ( "deprecation" ) не полностью скрывает его, но я думаю, что это, вероятно, полезно.

Ответ 3

Android Lint - это новый инструмент, внедренный в ADT 16 (и инструменты 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

Если ваше приложение поддерживает версии Android, такие же старые, как уровень API 4, вы можете использовать NotificationCompat.Builder, доступный в библиотеке поддержки Android.

Для библиотеки поддержки

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

Ответ 4

Вы можете использовать это:

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);
            }

Ответ 5

У меня такая же проблема в студии android. Я внес незначительные изменения в файл build.gradle(module: app), и проблема была решена. введите описание изображения здесь

После проекта синхронизации.