Разрешение Android не беспокоить (DnD) в управляемом профиле
У меня есть следующая проблема:
Мое приложение распространяется по системе MDM и работает в Android для работы. В определенных ситуациях приложение должно временно прекратить режим DnD. Чтобы достичь этого, пользователь должен предоставить разрешение DnD при запуске приложения.
Все идет нормально. Если я устанавливаю приложение в неуправляемой области, приложение отображается в списке, и разрешение может быть предоставлено без каких-либо проблем. Как только приложение распространяется через систему MDM, приложение больше не появляется в списке и разрешение не может быть предоставлено. Все разрешения были предоставлены в системе MDM. В качестве примера я распространил Google App по системе MDM. Это приложение появляется в списке.
В Манифесте я установил следующее разрешение:
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
Когда приложение запускается, выполняется следующий код:
NotificationManager nm = (NotificationManager).getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M && !nm.isNotificationPolicyAccessGranted()) {
Intent intent = new
Intent(Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
startActivity(intent);
}
Проблема возникает только с разрешения DnD. Все остальные разрешения, такие как разрешение наложения, отображаются без проблем.
Я надеюсь, что кто-нибудь может мне помочь.
1 ответ
Согласно документации Android: НЕ ВОЗМОЖНО
Здесь пользователи могут предоставлять или запрещать доступ к конфигурации "Не беспокоить". Управляемые профили не могут предоставить доступ в режиме "Не беспокоить".
По-видимому, в Google Issue Tracker сообщается о проблеме https://issuetracker.google.com/issues/77939714.
Это ответ от Google:
Статус: не исправить (предполагаемое поведение) 11:41 утра. Вы не можете изменить настройки DND из приложения управляемого профиля. Мы будем обновлять документацию, чтобы прояснить это.
Также есть ответ:
Microsoft Intune выпустила полностью управляемую настройку профиля Android Enterprise для устройств Android.... и теперь он может получить доступ и предоставить разрешение DnD. Не уверен, что дело в том, что мы перешли на полностью управляемые устройства или что-то еще изменилось.
И я бы поверил, что это на самом деле потому, что устройство полностью управляемое.
Итак, по моему мнению, есть два варианта:
- Полностью управляемое устройство (на телефоне потребуется сброс настроек до заводских)
- Установите его в личном кабинете
Я еще не нашел правильного решения этой проблемы, но я нашел обходной путь для отображения приложения в рабочей области. Похоже, что приложение отображается только в диалоговом окне, если это же приложение также установлено в приватной области. Если приложение не установлено в приватной области, оно также не будет отображаться в рабочей области. Мой обходной путь - установить приложение в приватной и рабочей зоне. После получения разрешения в рабочей области я удалил приложение из личной области. Как я уже сказал, это не решение самой проблемы, но это сработало. Для меня это выглядит как ошибка в Android, потому что для всех других разрешений приложение появляется в списке
У нас такая же проблема с приложением SignOnSite. Невозможно получить доступ к функции DnD для экстренной эвакуации, если мы также не установим приложение в Личном пространстве. Делать это таким образом рискованно, поэтому пришлось просто установить приложение в Личное пространство. Использование Intune для нашего MDM.
Попробуй это -
Intent intent = new Intent("android.settings.NOTIFICATION_POLICY_ACCESS_SETTINGS");
startActivity(intent);