Настройка владельца устройства с использованием кода не работает

Runtime.getRuntime (). Exec ("dpm set-device-owner com.integral.kiosk.kioskapp / .receivers.MyDeviceAdminReceiver");

не устанавливая владельца устройства в эмуляторе Android Nexus 6 OS Android 8. но при использовании команды оболочки adb он работает нормально.

прикрепив код ниже, который я использовал в функции oncreate.

 ComponentName deviceAdmin = new ComponentName(this, MyDeviceAdminReceiver.class);
        if (!mDevicePolicyManager.isAdminActive(deviceAdmin)) {
            Toast.makeText(this, "Not Device Admin", Toast.LENGTH_SHORT).show();

            Intent activateDeviceAdmin = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
            activateDeviceAdmin.putExtra(
                    DevicePolicyManager.EXTRA_DEVICE_ADMIN, deviceAdmin
            );
            activateDeviceAdmin
                    .putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "After activating admin, you will be able to block application uninstallation.”");
            startActivityForResult(activateDeviceAdmin,
                    PM_ACTIVATION_REQUEST_CODE);
        }


        if (mDevicePolicyManager.isDeviceOwnerApp(getPackageName())) {
            mDevicePolicyManager.setLockTaskPackages(deviceAdmin, new String[]{getPackageName()});
            Toast.makeText(this, "Device Owner", Toast.LENGTH_SHORT).show();
//            startLockTask();
            mDevicePolicyManager.clearDeviceOwnerApp(getPackageName());
        } else {

            Toast.makeText(this, "Not Device Owner", Toast.LENGTH_SHORT).show();
            try {
                Runtime.getRuntime().exec("dpm set-device-owner com.integral.kiosk.kioskapp/.receivers.MyDeviceAdminReceiver");
            } catch (IOException e) {
                e.printStackTrace();
            }

Пожалуйста помоги. заранее спасибо


person notify    schedule 08.12.2017    source источник
comment
Привет, вам в этом помогли? Я тоже застрял в этой проблеме   -  person Chaitali    schedule 23.05.2018


Ответы (1)


Попробуйте удалить весь код «добавить администратора устройства», все, что находится в первом блоке операторов if. С каждым выпуском Android, начиная с Lollipop, не рекомендуется использовать все больше и больше API-интерфейсов администратора устройств. Ваше приложение должно быть только владельцем устройства. Если он является владельцем устройства, его нельзя удалить, и вы можете устанавливать с него заблокированные задачи, такие как он сам.

person Steve Miskovetz    schedule 08.12.2017