我对来自更多 c++ 背景的 Java 和 Android 开发人员很陌生。我使用这个问题作为指导创建了一个 Kiosk/COSU 应用程序。我将应用程序设置为设备管理员使用adb shell dpm set-device-owner ...../.AppAdminReceiver我想在不出厂重置设备的情况下禁用活动设备所有者。我试着编程方式使用这样的问题这 和其他几个人,但它似乎并没有工作时。代码执行但应用程序仍然是设备所有者。我也试过添加android:testOnly="true"到 AndroidManifest.xml 然后使用这里adb shell dpm remove-active-admin ...../.AppAdminReceiver看到的但是我得到了错误java.lang.SecurityException: Attempt to remove non-test admin ComponentInfo{....AppAdminReceiver} 0.上一个链接中描述的方法似乎在 Android Oreo 中已被弃用,这是我为其构建应用程序的操作系统。如何在 Oreo 中删除设备所有者?我不介意是通过 adb 还是以编程方式完成,只要我不需要将设备恢复出厂设置即可。
2 回答
![?](http://img1.sycdn.imooc.com/533e4c9c0001975102200220-100-100.jpg)
POPMUISE
TA贡献1765条经验 获得超5个赞
我找到了以下激活设备所有者的方法
二维码配置
“adb shell dpm set-device-owner”命令
NFC 配置
激活设备所有者后,您将无法从设置中将其停用。
有两种方法可以删除设备所有者
恢复出厂设置
第二个只能从设备所有者应用程序代码中完成,如下
DevicePolicyManager devicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE); devicePolicyManager.clearDeviceOwnerApp(this.getPackageName());
我在应用程序中创建了一个隐藏选项来运行它。
**请注意,如果您想添加此代码并运行应用程序以删除所有者权限,则应使用相同的密钥对应用程序进行签名。
![?](http://img1.sycdn.imooc.com/5333a01a0001ee5302000200-100-100.jpg)
浮云间
TA贡献1829条经验 获得超4个赞
您可以在设置中进行。只需打开设置并在搜索框中输入“admin”即可。然后选择“设备管理应用程序”,单击您的应用程序并“停用此设备管理应用程序”
该页面的替代方法可能是应用程序和通知 -> 向下滚动并选择高级 -> 特殊应用程序访问 -> 设备管理应用程序
添加回答
举报
0/150
提交
取消