我需要上传一个针对 API 33 的应用程序到 Play 商店,但他们要求 API 应该是 34

问题描述 投票:0回答:1

我在将应用程序上传到 Play 商店时遇到问题。他们要求我将目标 API 更新为 34,但我的应用程序的恢复出厂设置功能仅适用于 API 33。当我将目标 API 更改为 34 时,应用程序上传成功,但恢复出厂设置代码停止运行。如果我将目标 API 保持在 33,则可以恢复出厂设置,但我无法上传应用程序。

有没有办法将针对 API 33 的应用程序上传到 Play 商店? 有没有办法让工厂重置代码在 API 34 上工作,我遇到异常

java.lang.SecurityException: User 0 is a system user and cannot be removed
android
1个回答
0
投票

Google Play 商店现在要求所有应用至少面向 API 级别 34 (Android 14),以确保与最新系统功能和安全更新兼容。因此,新应用程序更新不再接受以 API 级别 33 为目标。

关于针对 API 级别 34 时恢复出厂设置功能的问题,您遇到的错误(java.lang.SecurityException:用户 0 是系统用户,无法删除)与 Android 14 中更严格的安全措施有关,这些措施会阻止某些敏感操作(例如恢复出厂设置)不能以编程方式执行,特别是当用户是系统(主要)用户时。

Android 14 可能更改了有关恢复出厂设置的安全规则,特别是当您使用 DevicePolicyManager 等 API 来重置设备时。

使用替代品

使用设备所有者或配置文件所有者:您需要获得应用程序必须具有管理员权限的权限,以便您可以完成任务

在 API 级别 34 中,要执行恢复出厂设置,您的应用需要是设备所有者或配置文件所有者,确保您的应用已正确设置为设备管理员。

来自 Android 文档的来源:单击此处

另请检查权限:确保您的应用程序具有正确的权限,包括 DEVICE_ADMIN 并且已使用 DeviceAdminReceiver 注册为设备管理员。

两者都使用这样的代码:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { // API 34
    // Handle factory reset differently or show an error to users
} else {
    // Execute factory reset code for API 33 or lower
}
© www.soinside.com 2019 - 2024. All rights reserved.