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.
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
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();
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With