Кто-нибудь знает, где находится разрешение запуска в фоновом режиме в MIUI 11?

Я не могу начать активность в MIUI 11 redmi note 6 pro mobile, я получаю сообщение об ошибке:

com.android.server.am.ExtraActivityManagerService: MIUILOG - активность запрещена в разрешении

Я нашел какое-то решение, например, включить разрешение «запуск в фоновом режиме». Я не могу найти что-то подобное с MIUI 11. Буквально понятия не имею об этой проблеме. Заранее спасибо.


person Muthukumaaran Chandramohan    schedule 06.12.2019    source источник


Ответы (1)


У меня аналогичная проблема с запуском активности из BroadcastReceiver, когда приложение остановлено.

1) Вы можете найти свое приложение в настройках и разрешить запуск "в background ".
2) Если вам нужно разрешить разрешение программно, попробуйте открыть настройки приложения

Xiaomi

Этот код откроет настройки разрешений приложений, в которых вы должны разрешить запуск в фоновом режиме

Intent intent = new Intent("miui.intent.action.APP_PERM_EDITOR");
intent.setClassName("com.miui.securitycenter",
"com.miui.permcenter.permissions.PermissionsEditorActivity");
intent.putExtra("extra_pkgname", getPackageName());
startActivity(intent);


Устройства без системных оберток

Этот код откроет настройки приложения, в которых вы должны открыть разрешения и разрешить запуск в фоновом режиме.

Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

Подробнее о намерениях настроек Android: Как открыть окно разрешений приложения в настройках приложения программно

И вы также можете проверить код из github для работы с разрешениями в различных системных оболочках, таких как flyme, miui, oppo и т. Д.: https://github.com/zhaozepeng/FloatWindowPermission

Надеюсь, это вам поможет!

Если у вас есть другие варианты решения этой проблемы, я был бы признателен за ответ в комментариях. . .

person lincollincol    schedule 17.12.2019
comment
Решение хорошее. Есть ли способ предоставить это разрешение программно? Я видел, что это сделал Facebook. Потому что, когда я устанавливаю приложение, оно по умолчанию разрешено в приложении Facebook. - person Bhavin Chauhan; 13.05.2020
comment
@BhavinChauhan такие приложения, как Facebook, по умолчанию имеют больше привилегий. Политика Google вынуждает разработчиков запрашивать разрешения во время выполнения с помощью инструментов по умолчанию, где разрешение других системных оболочек, таких как MIUI, обычно не предоставляется. Мы должны описать намерения использования функции, для которой мы запрашиваем разрешение, в диалоговом окне и направить пользователя к настройкам. Также рекомендуется закрыть приложение или ограничить некоторые из его функций, если пользователь отклонил предложение разрешения. - person lincollincol; 13.05.2020
comment
@BhavinChauhan В своем приложении (будильник) я использовал админку устройства и уведомления. проверьте здесь, как реализовать администрирование устройства - ›stackoverflow.com/questions/13672404/lock-android-phone или узнайте больше об администрировании устройства здесь - ›developer.android.com/reference/android / app / admin / Итак, я блокирую экран в приемнике вещания, а затем показываю уведомление. См. Мой фрагмент кода здесь - ›github.com/lincollincol/AlarmClock-for-programmers/blob/master/ - person lincollincol; 13.05.2020
comment
@BhavinChauhan Это не лучшая практика, но это еще один метод решения проблемы БЕЗ РАЗРЕШЕНИЯ. - person lincollincol; 13.05.2020
comment
@BhavinChauhan есть ли способ узнать, предоставлено ли разрешение или нет? - person Raj Gohel; 17.06.2020
comment
Потому что мы не должны запрашивать разрешение, если пользователь уже предоставил разрешение - person Raj Gohel; 17.06.2020
comment
@RajGohel Извините, я не знаю, как проверить это разрешение - person Bhavin Chauhan; 18.06.2020