在Android 10 中,Google首次引入了分區(qū)存儲。分區(qū)存儲是需要以 Android 10 為目標(biāo)平臺,系統(tǒng)默認(rèn)強制執(zhí)行。
如果在 AndroidManifest 中添加了 requestLegacyExternalStorage=true 標(biāo)志,就可以不受此限制。但是當(dāng) target API 更新為 30 (Android 11)后,系統(tǒng)會忽略該配置。
平臺適配
1. 引擎存儲協(xié)議適配:引擎提供的存儲協(xié)議fs:// , cache://,引擎會進(jìn)行適配。
2. 模塊適配:官方模塊已完成適配。開發(fā)者模塊會陸續(xù)完成適配。因大部分模塊是基于引擎協(xié)議fs:// 開發(fā),因此需要適配的模塊很少。
應(yīng)用適配
1. 如果是文件管理,文檔管理類應(yīng)用,需要添加manageStorage模塊,申請 “所有文件訪問權(quán)限”。需要在谷歌play 控制臺描述該權(quán)限的用途。
2. 如果不是文件管理類應(yīng)用,不需特殊處理,編譯后進(jìn)行測試,所有功能正常,即可提交應(yīng)用商店。如果發(fā)現(xiàn)有相關(guān)功能異常,如文件保存不了,可在論壇反饋,官方會及時處理。
谷歌商店聲明,自2021年8月起,新應(yīng)用必須以API級別30 (Android 11)為目標(biāo)平臺。自2021年11月起,所有應(yīng)用更新必須以API級別30 (Android 11)為目標(biāo)平臺。
如何設(shè)置API級別為30
1、下載附件中的manifest.xml,將其中的targetSdkVersion更新為目標(biāo)值,例如30;
2、將manifest.xml置于你的/項目代碼/res/目錄下(widget/res/manifest.xml);
3、將你的APP代碼中所有涉及到需要動態(tài)權(quán)限的操作,參照原帖附件中的代碼,改造一遍。
(例如進(jìn)行拍照錄制視頻等需要使用攝像頭,以前的缺省處理中不需要申請攝像頭權(quán)限,而開啟動態(tài)權(quán)限后,必須在進(jìn)行拍照之前,判斷是否有攝像頭權(quán)限,沒有則進(jìn)行申請,只有用戶同意了攝像頭權(quán)限才能進(jìn)行接下來拍照的操作);
4、提交代碼;
5、云編譯界面勾選APP所需的權(quán)限;
6、使用升級環(huán)境編譯APP或自定義loader即可。
國內(nèi)小米、華為等應(yīng)用商店目前還未發(fā)現(xiàn)有針對Android 11的強制適配要求,如果您的APP無上線Google Play需求則不受上述影響。