You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 14调用DevicePolicyManager.wipeData()抛异常的解决方案咨询

Android 14 设备所有者应用数据擦除解决方案

问题背景

在设备所有者应用中使用DevicePolicyManager执行带数据擦除的硬重置操作,此前版本运行正常,但在Android 14中抛出异常:User 0 is a system user and cannot be removed,尝试更换不同标志位后问题仍未解决。

原代码

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
    mDevicePolicyManager.wipeData(DevicePolicyManager.WIPE_RESET_PROTECTION_DATA)
} else
    mDevicePolicyManager.wipeData(0)

解决方案

Android 14对设备所有者调用wipeData的行为新增限制:系统用户(User 0)无法被移除,原代码逻辑会触发移除用户的操作,导致抛出异常。需调整标志位,明确执行工厂重置而非移除用户:

修改后的代码如下:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
    // Android 14及以上,使用WIPE_FACTORY_RESET执行标准工厂重置
    mDevicePolicyManager.wipeData(DevicePolicyManager.WIPE_FACTORY_RESET);
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
    mDevicePolicyManager.wipeData(DevicePolicyManager.WIPE_RESET_PROTECTION_DATA);
} else {
    mDevicePolicyManager.wipeData(0);
}

关键说明

  • WIPE_FACTORY_RESET是Android 14新增的标志,明确指示执行标准工厂重置流程,不会触发移除系统用户的操作,从而规避异常。
  • 需确保应用已获取DEVICE_ADMIN权限,且已正确注册为设备所有者,否则操作仍会执行失败。

内容的提问来源于stack exchange,提问作者adden00

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 01:17:07