作為回應(yīng) Epic Game 和政府監(jiān)管機(jī)構(gòu)施加的壓力,谷歌在去年 9 月宣布將會(huì)在 Android 12 系統(tǒng)中作出改變。這些調(diào)整包括讓人們能夠在不損害 Android 現(xiàn)有安全措施的基礎(chǔ)上,更容易地在設(shè)備上使用來(lái)自其他應(yīng)用商店的應(yīng)用程序。
然而,谷歌并沒(méi)有具體說(shuō)明他們要對(duì) Android 系統(tǒng)做出哪些改變,他們也沒(méi)有在 2021 年的谷歌 I/O 大會(huì)上分享有關(guān)這一變化的具體信息。不過(guò)在今天更新的官方博文中,谷歌確認(rèn)正在兌現(xiàn)其承諾,讓第三方運(yùn)營(yíng)商店在 Android 12 上更容易使用。
在 Android 的 PackageInstaller.SessionParams 類中,谷歌增加了名為 setRequireUserAction 的新方法。這個(gè)方法表明在允許應(yīng)用安裝之前是否需要用戶操作。
對(duì)于任何持有 REQUEST_INSTALL_PACKAGES 權(quán)限的應(yīng)用程序來(lái)說(shuō),它的默認(rèn)值為 "true"。也就是說(shuō),當(dāng)用戶想要安裝非 Google Play 或者手機(jī)官方應(yīng)用商城之外的應(yīng)用程序,都會(huì)在啟動(dòng)安裝會(huì)話之前需要向用戶發(fā)送通知,在用戶授權(quán)安裝來(lái)自未知應(yīng)用程序的權(quán)限之后才可以安裝。
不過(guò)如果滿足以下條件,應(yīng)用程序的安裝/更新將不需要用戶操作
- 安裝器選擇了新的行為
- 正在安裝的應(yīng)用程序的目標(biāo)是 API 級(jí)別 29(Android 10)或更高。谷歌指出,目標(biāo)API級(jí)別要求將在未來(lái)的安卓版本中提高,這一政策與谷歌游戲關(guān)于API目標(biāo)要求的政策一致)。
- 程序安裝要么只是對(duì)自身的更新,或者是已安裝應(yīng)用對(duì)一款應(yīng)用的更新
- 安裝程序聲明了 UPDATE_PACKAGES_WITHOUT_USER_ACTION 權(quán)限。
因此,當(dāng)應(yīng)用商店試圖啟動(dòng)一個(gè)安裝會(huì)話并使用這個(gè)新的API時(shí),應(yīng)該可以在用戶無(wú)需手動(dòng)接受更新的情況下進(jìn)行更新。這將使分批更新應(yīng)用程序的速度更快,并使體驗(yàn)更符合Google Play商店的要求。