Android SecurityException: Admin does not own the profile
Solution 1
Your app needs to become either the device owner or profile owner. The easiest way to do this for one device is to use adb as here:
http://florent-dupont.blogspot.co.uk/2015/01/android-shell-command-dpm-device-policy.html
Basically from a command prompt
adb shell
dpm set-device-owner com.foo.deviceowner/.DeviceAdminRcvr
where com.foo.deviceowner
is your app package, and DeviceAdminRcvr
is the DeviceAdminReceiver
in your package. Note that you will get a java.lang.IllegalStateException
unless you have removed all accounts from the device (Settings
> Accounts
).
The other method is to create a NFC provisioning app as:
https://source.android.com/devices/tech/admin/provision.html
Solution 2
I think that you need to setup Profile with this code
Intent intent = new Intent(**ACTION_PROVISION_MANAGED_PROFILE**);
intent.putExtra(EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME,
activity.getApplicationContext().getPackageName());
if (intent.resolveActivity(activity.getPackageManager()) != null) {
startActivityForResult(intent, REQUEST_PROVISION_MANAGED_PROFILE);
activity.finish();
} else {
Toast.makeText(activity, "Stopping.",Toast.LENGTH_SHORT).show();
}
lyc001
Updated on July 25, 2022Comments
-
lyc001 almost 2 years
I have a device manager application and I am trying to use setScreenCaptureDisabled(..) function of DevicePolicyManager class available since API 21.
DevicePolicyManager pManager = (android.app.admin.DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE); pManager.setScreenCaptureDisabled(admin.getReceiverName(), true);
I am getting the following error:
03-30 13:50:24.623: E/AndroidRuntime(11564): java.lang.SecurityException: Admin ComponentInfo{com.example.xxv/com.example.xxv.DeviceAdminReceiver} does not own the profile
Any idea how I can solve this problem?
If there is any permission required, can you please indicate what it is.