public void removeDeviceOwner(final Context context) {
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
if (isDeviceOwnerApp(context)) {
NsLog.d(TAG, "========removeDeviceOwner=========");
DeviceManagerReceiver.handleDeviceAdminDisable(context);
Handler handler = new Handler(Looper.getMainLooper());
handler.postDelayed(new Runnable() {
@Override
public void run() {
DevicePolicyManager mDevicePolicyManager = getDPM(context);
mDevicePolicyManager.clearDeviceOwnerApp(context.getPackageName());
}
},1000*6);
}
}
} catch (Exception ex) {
NsLog.e(TAG, "exception while removeDeviceOwner:" + Log.getStackTraceString(ex));
}
}
真正有效果的是run方法中的代码
public void removeDeviceOwner(final Context context) {
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
if (isDeviceOwnerApp(context)) {
Log.d(TAG, "========removeDeviceOwner=========");
// DeviceAdminReceiver.handleDeviceAdminDisable(context);
Handler handler = new Handler(Looper.getMainLooper());
handler.postDelayed(new Runnable() {
@Override
public void run() {
DevicePolicyManager mDevicePolicyManager = getDPM(context);
mDevicePolicyManager.clearDeviceOwnerApp(context.getPackageName());
}
}, 1000 * 6);
}
}
} catch (Exception ex) {
Log.e(TAG, "exception while removeDeviceOwner:" + Log.getStackTraceString(ex));
}
}
@TargetApi(18)
public boolean isDeviceOwnerApp(Context context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
DevicePolicyManager manager = getDPM(context);
if (manager.isDeviceOwnerApp(context.getPackageName())) {
return true;
}
}
return false;
}
private DevicePolicyManager getDPM(Context context) {
return (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
}
本文详细介绍了如何在Android设备上移除应用的设备所有者权限。通过使用DevicePolicyManager API,可以在满足特定条件的情况下,延迟执行清除设备所有者应用的操作。
2241

被折叠的 条评论
为什么被折叠?



