1. 程式人生 > >安卓6.0 檔案儲存許可權管理

安卓6.0 檔案儲存許可權管理

1. 應用 私有儲存(內建儲存)
獲取方式:
Context.getFileDir() :獲取內建儲存下的檔案目錄,可以用來儲存不能公開給其他應用的一些敏感資料如使用者個人資訊
Context.getCacheDir() :獲取內建儲存下的快取目錄,可以用來儲存一些快取檔案如圖片,當內建儲存的空間不足時將系統自動被清除(然而具體多大,清除時的策略我也沒查到。。)
絕對路徑:
Context.getFileDir() : /data/data/應用包名/files/
Context.getCacheDir() : /data/data/應用包名/cache/
寫許可權:不需要申請
這是手機的內建儲存,沒有root的過的手機是無法用檔案管理器之類的工具檢視的。而且這些資料也會隨著使用者解除安裝App而被一起刪除。這兩個目錄其實就對應著 設定->應用->你的App->儲存空間 下面的 清除資料 和 清楚快取 

2. 應用
擴充套件儲存(SD卡)

獲取方式:
Context.getExternalFilesDir() : 獲取SD卡上的檔案目錄
Context.getExternalCacheDir() : 獲取SD卡上的快取目錄
絕對路徑:
Context.getExternalFilesDir() : SDCard/Android/data/應用包名/files/
Context.getExternalCacheDir() : SDCard/Android/data/應用包名/cache/
寫許可權:
API < 19:需要申請
API >= 19:不需要申請
既然是SD卡上的目錄,那麼是可以被其他的應用讀取到的,所以這個目錄下,不應該存放使用者的敏感資訊。同上面一樣的,這裡的檔案會隨著App解除安裝而被刪除,也可以由使用者手動在設定介面裡面清除。

3.公共儲存(SD卡)

獲取方式: Environment.getExternalStorageDirectory()
絕對路徑: SDCard/你設定的資料夾名字/
寫許可權:需要申請
如果我們的App需要儲存一些公共的檔案,甚至希望下載下來的檔案即使在我們的App被刪除之後,還可以被其他App使用,那麼就可以使用這個目錄。這個目錄是始終需要申請SD寫入許可權的。