Android 8.0 中如何读取内部和外部存储以及外置SDcard
生活随笔
收集整理的這篇文章主要介紹了
Android 8.0 中如何读取内部和外部存储以及外置SDcard
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
最近碰到詢問(wèn)我這個(gè)讀取SDcard的問(wèn)題, 很久沒(méi)有看這部分了,所以大致看了一下, 順便記錄一下。在Android 8.0上做了測(cè)試。
一般的Android App能讀取的存儲(chǔ)空間主要有三種:
讀寫(xiě)這個(gè)目錄不需要單獨(dú)的權(quán)限。每個(gè)app只能讀寫(xiě)自己的目錄,而不能讀寫(xiě)其他app的目錄。 Android通過(guò)Seandroid對(duì)權(quán)限進(jìn)行了管理。
這個(gè)其實(shí)是Android手機(jī)的internal storage。 也就是一般你買(mǎi)手機(jī)的時(shí)候, 說(shuō)手機(jī)是64GB的存儲(chǔ)空間,就是說(shuō)的這個(gè)地方。這個(gè)地方的讀寫(xiě)需要申請(qǐng)權(quán)限。READ_EXTERNAL_STORAGE 是讀, WRITE_EXTERNAL_STORAGE 是寫(xiě), 有寫(xiě)的權(quán)限就自動(dòng)有讀的權(quán)限。 這個(gè)權(quán)限是正對(duì)整個(gè)/sdcard,不區(qū)分子目錄, 也就是說(shuō)一旦你申請(qǐng)權(quán)限你可以對(duì)整個(gè)/sdcard上的所有文件和目錄有操作權(quán)限。這個(gè)權(quán)限的管理會(huì)顯示再settings里相應(yīng)的app permission里。
這個(gè)對(duì)應(yīng)的是你放入手機(jī)sdcard插槽的microSD卡。 有時(shí)候也叫removable storage。 Android里無(wú)法通過(guò)申請(qǐng)權(quán)限來(lái)獲取讀寫(xiě)的權(quán)利。 這一點(diǎn)和上面說(shuō)的2不同。 因此,如果需要獲取寫(xiě)權(quán)限, 需要用戶指定特定的目錄單獨(dú)授權(quán)。這里舉個(gè)簡(jiǎn)單的例子。 如果外置sdcard的路徑是/mnt/extsdcard,然后上面有兩個(gè)目錄a和b, 那么你可以讓用戶授權(quán)你寫(xiě)/mnt/extsdcard/a, 但是你還需要讓用戶再單獨(dú)授權(quán)你寫(xiě)/mnt/extsdcard/b, 也就是要授權(quán)兩次。 具體的實(shí)現(xiàn)方法, 就不多說(shuō)了, google再github上給了個(gè)例子, 其中的wiki頁(yè)面有比較詳細(xì)的描述。
特別要說(shuō)明的是, 由于這個(gè)沒(méi)有對(duì)應(yīng)的android permission, 所以如果你得到授權(quán)以后, 對(duì)應(yīng)的目錄路徑不會(huì)顯示再settings中的app permission。 相反, 它會(huì)顯示再app storage里,用戶可以在那里revoke對(duì)app的授權(quán)(同樣, 也是指定目錄)。這個(gè)我感覺(jué)其實(shí)不好, 因?yàn)檫@本質(zhì)上也是權(quán)限問(wèn)題, 應(yīng)該都放在app permission里。
總結(jié)
以上是生活随笔為你收集整理的Android 8.0 中如何读取内部和外部存储以及外置SDcard的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【IPFS + 区块链 系列】 入门篇
- 下一篇: Android通过Geth RPC接口实