Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何删除Android DPM中的设置设备所有者?_Android_Adb_Device Policy Manager - Fatal编程技术网

如何删除Android DPM中的设置设备所有者?

如何删除Android DPM中的设置设备所有者?,android,adb,device-policy-manager,Android,Adb,Device Policy Manager,通过以下链接,我使用ADB创建了一个应用程序设备所有者: 但是现在,我无法恢复这个 在“设备管理”选项卡中,此选项被禁用。无法更改此应用程序的值。唯一的出路是闪存或出厂重置设备。您可以通过编程方式将其取消设置。您需要在设备所有者应用程序中调用此函数 DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE); dpm.clearDeviceOwn

通过以下链接,我使用ADB创建了一个应用程序设备所有者:

但是现在,我无法恢复这个


在“设备管理”选项卡中,此选项被禁用。无法更改此应用程序的值。

唯一的出路是闪存或出厂重置设备。

您可以通过编程方式将其取消设置。您需要在设备所有者应用程序中调用此函数

DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);

dpm.clearDeviceOwnerApp(context.getPackageName());
更多信息


更新:此方法在API级别26中不推荐使用

您可以使用以下ADB shell命令删除设备所有者

adb shell dpm remove-active-admin ComponentInfo{}

如果禁用活动管理员,则该管理员必须在其清单中的应用程序中声明了android:testOnly。通过在
AndroidManifest.xml
中指定
android:testOnly=“true”
属性,也将删除设备和配置文件所有者。可以通过以下方式卸载应用程序或删除管理员:

adb外壳dpm删除活动管理包。名称/MyDeviceAdminReceiver

但在生产设备上,不应包含此属性,并且应用程序将是非测试管理员。从那时起,如果没有擦除/出厂重置,将无法删除或卸载应用程序

谢天谢地,当应用程序使用相同的密钥签名,并且版本代码等于或大于以下值时,可以进行更新:

adb安装-r路径/to/kiosk.apk

如果您想以编程方式摆脱生产设备上的管理和应用程序,您必须通过一些新的更改重新安装它。首先,如果您在device\u admin\u receiver.xml中具有以下权限,则可以通过编程方式擦除数据:

devicePolicyManager.wipeData(devicePolicyManager.WIPE\u RESET\u PROTECTION\u DATA)

如果您没有此权限,则新版本不应启动LockTask并从默认主应用程序列表中删除其程序包,包括:

devicePolicyManager.clearPackagePersistentPreferredActivities(adminComponentName,packageName)

然后,您可以手动转到设置以执行刮水/出厂重置


参考资料:adb shell dpm remove active admin(删除活动管理员)

。如果设备所有者处于活动状态,则无法删除设备管理员。在否决回答之前,请先了解事实。只要活动的管理员应用程序的AndroidManifest.xml中没有android:testOnly=“false”,此功能就可以工作。否则,Android(至少6.0版)会变得暴躁,拒绝执行要求的操作。仅供参考:
adb shell dpm remove active admin
仅适用于Android 7此方法在API级别26中被弃用。