Android 8.0 讀取內(nèi)部和外部存儲以及外置SDcard的方法
最近碰到詢問我這個(gè)讀取SDcard的問題, 很久沒有看這部分了,所以大致看了一下, 順便記錄一下。在Android 8.0上做了測試。
一般的Android App能讀取的存儲空間主要有三種:
app自己的私有目錄,也就是/data/data/《app 目錄》。
讀寫這個(gè)目錄不需要單獨(dú)的權(quán)限。每個(gè)app只能讀寫自己的目錄,而不能讀寫其他app的目錄。 Android通過Seandroid對權(quán)限進(jìn)行了管理。
/sdcard。
這個(gè)其實(shí)是Android手機(jī)的internal storage。 也就是一般你買手機(jī)的時(shí)候, 說手機(jī)是64GB的存儲空間,就是說的這個(gè)地方。這個(gè)地方的讀寫需要申請權(quán)限。READ_EXTERNAL_STORAGE 是讀, WRITE_EXTERNAL_STORAGE 是寫, 有寫的權(quán)限就自動(dòng)有讀的權(quán)限。 這個(gè)權(quán)限是正對整個(gè)/sdcard,不區(qū)分子目錄, 也就是說一旦你申請權(quán)限你可以對整個(gè)/sdcard上的所有文件和目錄有操作權(quán)限。這個(gè)權(quán)限的管理會顯示再settings里相應(yīng)的app permission里。
外置sdcard
這個(gè)對應(yīng)的是你放入手機(jī)sdcard插槽的microSD卡。 有時(shí)候也叫removable storage。 Android里無法通過申請權(quán)限來獲取讀寫的權(quán)利。 這一點(diǎn)和上面說的2不同。 因此,如果需要獲取寫權(quán)限, 需要用戶指定特定的目錄單獨(dú)授權(quán)。這里舉個(gè)簡單的例子。 如果外置sdcard的路徑是/mnt/extsdcard,然后上面有兩個(gè)目錄a和b, 那么你可以讓用戶授權(quán)你寫/mnt/extsdcard/a, 但是你還需要讓用戶再單獨(dú)授權(quán)你寫/mnt/extsdcard/b, 也就是要授權(quán)兩次。 具體的實(shí)現(xiàn)方法, 就不多說了, google再github上給了個(gè)例子, 其中的wiki頁面有比較詳細(xì)的描述。
特別要說明的是, 由于這個(gè)沒有對應(yīng)的android permission, 所以如果你得到授權(quán)以后, 對應(yīng)的目錄路徑不會顯示再settings中的app permission。 相反, 它會顯示再app storage里,用戶可以在那里revoke對app的授權(quán)(同樣, 也是指定目錄)。這個(gè)我感覺其實(shí)不好, 因?yàn)檫@本質(zhì)上也是權(quán)限問題, 應(yīng)該都放在app permission里。
以上這篇Android 8.0 讀取內(nèi)部和外部存儲以及外置SDcard的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
AndroidStudio 配置 AspectJ 環(huán)境實(shí)現(xiàn)AOP的方法
本篇文章主要介紹了AndroidStudio 配置 AspectJ 環(huán)境實(shí)現(xiàn)AOP的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-02-02詳解如何在Flutter中用小部件創(chuàng)建響應(yīng)式布局
由于Flutter的跨平臺、單一代碼庫的能力,了解屏幕管理以防止像柔性溢出錯(cuò)誤或糟糕的用戶界面設(shè)計(jì)這樣的問題是至關(guān)重要的。本文將探討如何用靈活和擴(kuò)展的小部件創(chuàng)建響應(yīng)式布局,需要的可以參考一下2022-02-02Android style的繼承方式 點(diǎn)(.)和parent詳解及實(shí)例
這篇文章主要介紹了Android style的繼承方式 點(diǎn)(.)和parent詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-02-02Android利用ViewPager實(shí)現(xiàn)可滑動(dòng)放大縮小畫廊效果
這篇文章主要介紹了Android利用ViewPager實(shí)現(xiàn)可滑動(dòng)放大縮小畫廊效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08Android設(shè)置TextView樣式SpannableString教程
這篇文章主要為大家介紹了Android設(shè)置TextView樣式SpannableString教程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02基于Rxjava實(shí)現(xiàn)輪詢定時(shí)器
這篇文章主要為大家詳細(xì)介紹了基于Rxjava實(shí)現(xiàn)輪詢定時(shí)器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06