По-видимому, ОС MIUI уже реализовала свою собственную систему разрешений до того, как Marshmallow сделает. В настоящее время я тестирую приложение для записи видео для Xiaomi Mi 4i, которое использует MIUI на основе API 21 [Android 5.0.2], и ему требуется разрешение на запись звука, которое по умолчанию не предоставляется Менеджером разрешений MIUI.Разрешения. Как я могу запросить и/или изменить их на телефонах, запускающих MIUI во время выполнения?
До сих пор как я сумел изменить права доступа является окно разрешений диспетчера для приложения по нажатию на кнопку OK в AlertDialog:
isMIUI = MIUIUtils.isMIUI();
if(isMIUI)
{
AlertDialog.Builder adb = new AlertDialog.Builder(this);
adb.setMessage("If you intend to use the video recording feature, please enable the 'Record Audio' permission in the settings menu. You will be redirected there if you press OK.")
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent("android.settings.APPLICATION_DETAILS_SETTINGS");
intent.setClassName("com.miui.securitycenter", "com.miui.permcenter.permissions.AppPermissionsEditorActivity");
intent.putExtra("extra_pkgname", "com.picmix.mobile");
startActivity(intent);
}
})
.setNegativeButton("CANCEL", null)
.create();
adb.show();
}
Но это не достаточно хорошо для меня. Мне нужно проверить, уже разрешено ли разрешение Record Audio
в диспетчере разрешений MIUI, чтобы запустить его только один раз.
Как проверить разрешения, предоставленные или подлежащие уведомлению в Менеджере разрешений MIUI программным путем?
Это работает только в Android 6.0 (Marshmallow). Xiaomi Mi 4i был идентифицирован с Android 5.0.2 (Lollipop), и этот код просто вернет значение true для всего, что определено в манифесте (кстати, имеется разрешение «Record Audio»). Менеджер разрешений MIUI делает вещи более сложными, чем просто это. – Gensoukyou1337