android分區(qū)存儲(chǔ)

<manifest>
    <application>
        <!-- 表示已經(jīng)適配了分區(qū)存儲(chǔ)特性 -->
        <meta-data
            android:name="ScopedStorage"
            android:value="true" />
    </application>
</manifest>

manifest中有ScopedStorage 屬性表示項(xiàng)目已適配了分區(qū)存儲(chǔ)
但是targetsdk >=30 會(huì)被強(qiáng)制開(kāi)啟分區(qū)存儲(chǔ)
那么我表示適配了分區(qū)存儲(chǔ)有什么用?
可以使用 READ_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGE 來(lái)申請(qǐng)權(quán)限了
這兩個(gè)權(quán)限什么用,申請(qǐng)了可以訪問(wèn)外部存儲(chǔ)卡的多媒體文件。但也只能用MediaStore Api訪問(wèn)

想訪問(wèn)外部存儲(chǔ)卡的任何文件怎么辦,MANAGE_EXTERNAL_STORAGE
MANAGE_EXTERNAL_STORAGE 為什么不直接申請(qǐng),多次一舉,因?yàn)樯霞芄雀枋袌?chǎng),上架不了
,谷歌市場(chǎng)只允許文件管理app可以申請(qǐng)這個(gè)權(quán)限。

那我想簡(jiǎn)單的存儲(chǔ)圖片,視頻,任何文件自己使用怎么辦?
那么就不需要任何權(quán)限了,直接用getExternalFilesDir ,保存在外部存儲(chǔ)卡,但是得是自己應(yīng)用的私有存儲(chǔ)目錄。這都啥跟啥啊。別急,谷歌意思就是你自己目錄,你隨便造,無(wú)所謂 權(quán)限都不要你申請(qǐng)了,因?yàn)闀?huì)隨應(yīng)用卸載數(shù)據(jù)也卸載,但是你首先得表示是適配了分區(qū)存儲(chǔ)的。那你沒(méi)適配分區(qū)存儲(chǔ),那就隨便整吧,按照以前的邏輯來(lái),申請(qǐng)讀寫(xiě)權(quán)限,用getExternalFilesDir 還是 Environment.getExternalStorageDirectory 都可以

還有要注意的,getExternalFilesDir 是長(zhǎng)期保存的數(shù)據(jù),getExternalCacheDir是緩存數(shù)據(jù),隨時(shí)會(huì)被清理,可千萬(wàn)別用getExternalCacheDir 保存文件了,getExternalCacheDir 有啥用? 當(dāng)它不存在好了,就是緩存大而臨時(shí)的數(shù)據(jù),不至于app數(shù)據(jù)很大。不是上市app,用不到這個(gè)屬性吧
個(gè)人綜合其他文章的閱讀理解,沒(méi)有實(shí)際操作驗(yàn)證, 僅供參考
參考:https://gitcode.net/mirrors/getActivity/XXPermissions?utm_source=csdn_github_accelerator
參考:https://blog.csdn.net/weixin_42324979/article/details/114259483

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容