Desidero utilizzare il metodo DevicePolicyManager
: setSecureSetting
. Questo metodo richiede profil o proprietario del dispositivo:Device Admin API, come essere proprietario di un dispositivo?
Chiamato dal proprietario del profilo o del dispositivo per aggiornare le impostazioni Impostazioni Impostazioni.
La mia applicazione ha attivato Device Admin perché quando ho chiamato isAdminActive
restituisce true.
Ma quando ho chiamato setSecureSetting
ho ottenuto eccezione:
E/DevicePolicyUtility(9901): java.lang.SecurityException: Admin ComponentInfo{com.xxxx/com.xxxx.MyDeviceAdminReceiver} does not own the profile
E/DevicePolicyUtility(9901): at android.os.Parcel.readException(Parcel.java:1546)
E/DevicePolicyUtility(9901): at android.os.Parcel.readException(Parcel.java:1499)
E/DevicePolicyUtility(9901): at android.app.admin.IDevicePolicyManager$Stub$Proxy.setSecureSetting(IDevicePolicyManager.java:4300)
E/DevicePolicyUtility(9901): at android.app.admin.DevicePolicyManager.setSecureSetting(DevicePolicyManager.java:3399)
Quindi, come per essere un proprietario del dispositivo su API? Non trovo in http://developer.android.com/guide/topics/admin/device-admin.html o http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html
provo questo su API Livello 23:
Intent intent = new Intent(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE);
intent.putExtra(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME,ctx.getPackageName());
if (intent.resolveActivity(ctx.getPackageManager()) != null) {
ctx.startActivity(intent);
} else {
Toast.makeText(ctx, "Stopping.", Toast.LENGTH_SHORT).show();
}