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);
}