android — Android - Как включить /отключить параметр «Плавающие уведомления» по умолчанию для приложения с использованием кода" />

Android - Как включить /отключить параметр «Плавающие уведомления» по умолчанию для приложения с использованием кода

Я хочу включить плавающее уведомление с использованием кода Android. Обычно пользователи не знали об этом параметре. поэтому мне нужно включить это по умолчанию.

 Настройка уведомлений приложения

7 голосов | спросил SachinS 4 MarpmSat, 04 Mar 2017 18:26:03 +03002017-03-04T18:26:03+03:0006 2017, 18:26:03

2 ответа


0

Боюсь, плохие новости.

Как вы, вероятно, знаете, для этого требуется разрешение SYSTEM_ALERT_WINDOW .

Поскольку Android M Google имеет начал блокировать это разрешение, чтобы уменьшить беспорядок. В этом разрешении немного необычно то, что он требует от пользователя перехода к экрану фактических настроек Обычный поток разрешений Android M не работает для этого . Чтобы процитировать API:

  

Если приложение предназначено для уровня API 23 или выше, пользователь приложения должен явно предоставить это разрешение приложению через экран управления разрешениями

Вы используете класс «Настройки», чтобы убедиться, что вы уже имеет разрешение , а если нет, вам нужно объяснить и направить пользователя к соответствующему экрану настроек через намерения :

Intent i = new Intent();
i.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
i.addCategory(Intent.CATEGORY_DEFAULT);
i.setData(Uri.parse("package:" + context.getPackageName()));
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
i.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
context.startActivity(i);

Это должно затрагивать только устройства с 23+, поскольку старые устройства должны получать разрешение автоматически, но не полагаться на проверку SDK_INT, вместо этого полагайтесь на canDrawOverlays , поскольку существует исключения >

ответил Nick Cardoso 13 MaramMon, 13 Mar 2017 02:16:01 +03002017-03-13T02:16:01+03:0002 2017, 02:16:01
0
NotificationCompat.Builder mBuilder = (NotificationCompat.Builder) new NotificationCompat.Builder(context)
            .setSmallIcon(R.drawable.some_small_icon)
            .setContentTitle("Title")
            .setContentText("This is a test notification with MAX priority")
            .setPriority(Notification.PRIORITY_MAX);//You need this

Взгляните на эту страницу /guidelines/patterns/notifications.html#notifications-settings-priority

ответил Rajesh 9 MaramThu, 09 Mar 2017 08:28:20 +03002017-03-09T08:28:20+03:0008 2017, 08:28:20

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132