Следуя справочнику по Android Management API , мы настроили наше приложение Android Companion таким образом, чтобы оно могло: включать системные приложения, скрывать и отображать пакеты.
Мы добавили следующую информацию в нашу конфигурацию политики:
{
'
'
'
"applications": [
{
"packageName": "com.domain.app",
"installType": "REQUIRED_FOR_SETUP",
"defaultPermissionPolicy": "GRANT",
"delegatedScopes": [
"ENABLE_SYSTEM_APP",
"PACKAGE_ACCESS"
]
}
],
'
'
'
}
Затем в наше приложение Android Companion мы добавили следующие строки кода в соответствии с документацией Google здесь и здесь :
DevicePolicyManager dpm = (DevicePolicyManager) mContext.getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName admin = new ComponentName(mContext, DeviceAdminReceiver.class);
// Iterate through system application package names list
for (String packageName : systemAppsList) {
if (packageName != null && !packageName.equals("")) {
try {
// Re-enable a system app that was disabled by default when the user was initialized
dpm.enableSystemApp(admin, packageName);
// Unhide a package (it could be any app : system, managed, etc...)
dpm.setApplicationHidden(admin, packageName, false);
} catch (SecurityException e) {
e.printStackTrace();
Log.e(TAG, e.getMessage());
}
}
}
Мы ожидаем, что на панели запуска Android будут отображаться включенные системные приложения, но Android ловит SecurityException
и печатает следующий журнал ошибок:
Нет активного администратора. ComponentInfo {com.domain.app/android.app.admin.DeviceAdminReceiver}
У вас есть идеи о том, что может быть не так?