gpt4 book ai didi

android - 设备所有者未在 Android M 上清除

转载 作者:行者123 更新时间:2023-11-30 05:03:45 36 4
gpt4 key购买 nike

我写了一个设备所有者信息亭应用程序,我想删除设备所有者状态,这样我就可以卸载它而无需将设备恢复出厂设置。以下适用于 Nougat 和 Oreo,但不适用于三星平板电脑的 Marshmallow。

The specifics of how I'm coding the device owner stuff:

要将应用程序设置为设备所有者,我在安装应用程序后运行此 adb shell 命令:

adb shell dpm set-device-owner com.dps.myapp/.DeviceAdminReceiver

然后,当我尝试删除设备所有者状态并卸载应用程序时,我正在运行这些 shell 命令:

adb shell am force-stop com.dps.myapp
adb shell am start -n com.dps.myapp/.DeactivateDeviceOwnerActivity
adb shell pm uninstall com.dps.myapp

DeactivateDeviceOwnerActivity 是我的应用程序中的一个 Activity,它包含以下用于清除设备所有者状态的代码:

DevicePolicyManager mDevicePolicyManager = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
mDevicePolicyManager.clearDeviceOwnerApp(getApplicationContext().getPackageName());
if (mDevicePolicyManager.isDeviceOwnerApp(getApplicationContext().getPackageName())) {
Toast.makeText(getApplicationContext(),
"Failure! App is still device owner.",Toast.LENGTH_LONG)
.show();
}
else {
Toast.makeText(getApplicationContext(),
"Success!", Toast.LENGTH_LONG).show();
}

奇怪的是,我的 Activity 正在显示 clearDeviceOwnerApp 调用有效的 Toast,但是当我在之后立即运行卸载命令时,我从它返回“Failure [DELETE_FAILED_DEVICE_POLICY_MANAGER]”,所以显然设备所有者是没有为我的应用程序清除。

有谁知道 Marshmallow 和后续 API 之间的任何具体差异,关于设备所有权或 DevicePolicyManager 会导致此代码在 Nougat 和 Oreo 上运行,但在 Marshmallow 上不起作用?当我发出启动命令让 DeactivateDeviceOwnerActivity 清除设备所有者时,我正在查看系统日志,但没有看到任何表明发生异常的信息。任何帮助,将不胜感激。

最佳答案

我在 Marshmallow 上没有遇到过这样的问题。

这很奇怪,虽然我不能给出答案,但我会提出一些建议

1) 这可能是一个错误。因此,您可以将设备恢复出厂设置并重试。

2) 使用模拟器进行此类测试非常方便,因为您可以轻松地删除并创建一个新的模拟器。

希望对你有帮助。

关于android - 设备所有者未在 Android M 上清除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54948544/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com