Отображение всплывающего окна windows во время работы в фоновом режиме? - PullRequest
5 голосов
/ 08 января 2020

Я пытаюсь открыть действие из класса, который расширяет Сервис. Я выполняю эту задачу, когда приложение не на переднем плане / не используется. В журналах видно, что мой класс обслуживания инициировал запуск активности с флагом Intent.FLAG_ACTIVITY_NEW_TASK. Но активность не открывается. Но когда служба запускает ту же активность, когда приложение находится на переднем плане / используется, действие открывается.

После нескольких поисков я обнаружил, что мне нужно вручную дать разрешение "показывать всплывающее окно windows при работе в фоновом режиме android" в разделе других разрешений в настройках приложения.

Отображение поверх разрешения других приложений SYSTEM_ALERT_WINDOW дает доступ только к «всплывающему окну».

Other permissions

На изображении выше, SYSTEM_ALERT_WINDOW только предоставит вам доступ к «Отображать всплывающее окно», и это прекрасно работает, если приложение находится на переднем плане / используется. но разрешение, помеченное красным, если оно будет предоставлено, даст вам доступ к открытию любой активности непосредственно из службы, расширяющей класс.

Как проверить или попросить пользователя выдать «Отображать всплывающее окно windows при работе в фоновом режиме» разрешение? или это разрешение ограничено?

1 Ответ

0 голосов
/ 13 января 2020

Попробуйте следующий код.

 Intent rIntent = context.getPackageManager()
                    .getLaunchIntentForPackage(context.getPackageName() );
            PendingIntent intent = PendingIntent.getActivity(
                    context, 0,
                    rIntent, PendingIntent.FLAG_CANCEL_CURRENT);
            AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
            manager.set(AlarmManager.RTC, System.currentTimeMillis(), intent);
            System.exit(2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...