Skip to content Skip to sidebar Skip to footer

Run Intent Devicepolicymanager.action_add_device_admin From A Service

I have a service and I want the service promote to enable it as Device Admin, until now I launched this kind of UI interactions from the service like Intent intent2 = new Inte

Solution 1:

The reason is on the code of the Android DeviceAdminAdd class itself:

if ((getIntent().getFlags()&Intent.FLAG_ACTIVITY_NEW_TASK) != 0) {
            Log.w(TAG, "Cannot start ADD_DEVICE_ADMIN as a new task");
            finish();
            return;
       }

You should consider using another activity to call the DevicePolicyManager.

Solution 2:

I've just fixed such issue for myself.

Note, that you need to put this code inside parent in Android Manifest.xml file:

<receiverandroid:name=".ScreenLockerDeviceAdminReceiver"android:permission="android.permission.BIND_DEVICE_ADMIN" ><meta-dataandroid:name="android.app.device_admin"android:resource="@xml/device_admin_policies" /><intent-filter><actionandroid:name="android.app.action.DEVICE_ADMIN_ENABLED" /></intent-filter></receiver>

and it works :)

Solution 3:

You don't even need to popup security setting's device admin UI. Here is a way to do it pragmatically:

Runtime.getRuntime("dpm set-device-admin --user 0 com.mydeviceadmin/.deviceAdminReceiver")  

where receiver needs to be define in manifest as described in android developer guide: Device administration overview

Tested with android 6.0

David

Post a Comment for "Run Intent Devicepolicymanager.action_add_device_admin From A Service"