通过以下链接,我已经使用ADB建立了应用设备所有者: How to make my app a device owner?
但现在,我无法恢复此状态。
在设备管理选项卡中,禁用此选项。无法更改此应用的价值。
答案 0 :(得分:9)
您可以通过编程方式取消设置。您需要在设备所有者应用程序中调用此功能
DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
dpm.clearDeviceOwnerApp(context.getPackageName());
了解更多信息see
答案 1 :(得分:4)
您可以使用以下ADB shell命令删除设备所有者
adb shell dpm remove-active-admin ComponentInfo{}
禁用活动管理员,管理员必须在其清单中的应用程序中声明了android:testOnly。这也将删除设备和个人资料所有者
答案 2 :(得分:2)
通过在AndroidManifest.xml中指定android:testOnly =“ true”属性,可以使用以下方法卸载应用程序或删除管理员:
adb shell dpm remove-active-admin package.name/MyDeviceAdminReceiver
但是在生产设备上,应删除此属性,以便该应用程序成为非测试管理员。从那时起,如果不清除擦除/恢复出厂设置,将无法删除它或卸载应用程序。同样重要的是要记住,如果您是通过Android Studio构建的应用,则将使用Android的默认密钥对其进行签名,并且该应用将成为非测试管理员。一段时间后,如果您想添加一些新功能,您将意识到无法安装新版本。值得庆幸的是,当版本代码等于或大于以下版本时,使用相同的密钥对应用程序进行签名即可完成更新:
adb install -r path/to/kiosk.apk
如果您想摆脱生产设备上的管理员和应用程序,则必须进行一些新的更改来重新安装它。首先,如果您在device_admin_receiver.xml中具有<wipe-data \>
的权限,则可以通过编程方式擦除数据:
devicePolicyManager.wipeData(DevicePolicyManager.WIPE_RESET_PROTECTION_DATA)
如果您没有此权限,则不应使用以下命令启动新版本的LockTask并将其包从默认的“家庭应用”列表中删除:
devicePolicyManager.clearPackagePersistentPreferredActivities(mAdminComponentName, packageName)
然后,您可以手动转到“设置”以执行擦除/恢复出厂设置。
在以下位置找到的信息:https://snow.dog/blog/kiosk-mode-android
答案 3 :(得分:0)
唯一的出路是闪存或恢复出厂设置。
答案 4 :(得分:-1)
fyi:adb shell dpm remove-active-admin
仅可用于Android 7