作为回应 Epic Game 和政府监管机构施加的压力,谷歌在去年 9 月宣布将会在 Android 12 系统中作出改变。这些调整包括让人们能够在不损害 Android 现有安全措施的基础上,更容易地在设备上使用来自其他应用商店的应用程序。
然而,谷歌并没有具体说明他们要对 Android 系统做出哪些改变,他们也没有在 2021 年的谷歌 I/O 大会上分享有关这一变化的具体信息。不过在今天更新的官方博文中,谷歌确认正在兑现其承诺,让第三方运营商店在 Android 12 上更容易使用。
在 Android 的 PackageInstaller.SessionParams 类中,谷歌增加了名为 setRequireUserAction 的新方法。这个方法表明在允许应用安装之前是否需要用户操作。
对于任何持有 REQUEST_INSTALL_PACKAGES 权限的应用程序来说,它的默认值为 "true"。也就是说,当用户想要安装非 Google Play 或者手机官方应用商城之外的应用程序,都会在启动安装会话之前需要向用户发送通知,在用户授权安装来自未知应用程序的权限之后才可以安装。
不过如果满足以下条件,应用程序的安装/更新将不需要用户操作
- 安装器选择了新的行为
- 正在安装的应用程序的目标是 API 级别 29(Android 10)或更高。谷歌指出,目标API级别要求将在未来的安卓版本中提高,这一政策与谷歌游戏关于API目标要求的政策一致)。
- 程序安装要么只是对自身的更新,或者是已安装应用对一款应用的更新
- 安装程序声明了 UPDATE_PACKAGES_WITHOUT_USER_ACTION 权限。
因此,当应用商店试图启动一个安装会话并使用这个新的API时,应该可以在用户无需手动接受更新的情况下进行更新。这将使分批更新应用程序的速度更快,并使体验更符合Google Play商店的要求。