Я создал киоск-приложение и пытаюсь настроить свое устройство в качестве администратора. Всякий раз, когда я проверяю, являюсь ли я активным администратором, он возвращает false
private void provisionOwner() {
DevicePolicyManager manager =
(DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName componentName = BasicDeviceAdminReceiver.getComponentName(this);
if(!manager.isAdminActive(componentName)) {
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName);
startActivityForResult(intent, 0);
return;
}
if (manager.isDeviceOwnerApp(getPackageName()))
manager.setLockTaskPackages(componentName, new String [] {getPackageName()});
}
Я следовал инструкциям по выполнению сценария командной строки, прежде чем проверять, является ли устройство администратором, и я получаю сообщение об ошибке.
adb shell dpm set-device-owner com.testapp/.DeviceAdminReceiver
Ошибка, которую я возвращаю,
Для AndroidManifest.xml добавляю разрешение для Bluetooth
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
Для AndroidManifest.xml я регистрирую DeviceAdminReceiver
<receiver
android:name="<my package>.DeviceAdminReceiver"
android:label="@string/app_name"
android:permission="android.permission.BIND_DEVICE_ADMIN">
<meta-data
android:name="android.app.device_admin"
android:resource="@xml/device_admin" />
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
</receiver>
Мой device_admin.xml выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<device-admin>
<uses-policies>
<wipe-data/>
<force-lock/>
<disable-camera/>
<disable-keyguard-features/>
</uses-policies>
</device-admin>
Нужно ли для настройки режима киоска назначать администратором свое устройство? И если да, то почему я получаю эту ошибку?