android6.0 sd卡卸载api,android6.0 用户关掉sd卡读取权限的情况下, 还能做到手机缓存么?...
兄弟,你理解錯了。
可以看看官方文檔。
Android的儲存空間分兩塊:Internal storage和External storage
Internal storage
總是可用的,不需要額外權限,這里的文件默認只能被我們的app所訪問。
可以通過Context下的getFilesDir()方法獲取到App的internal目錄,通過getCacheDir()獲取到internal緩存目錄。
External storage
可能由于掛載外部儲存器的原因導致這個空間不是總是可用。但是目前越來越多的廠商已經不允許用戶自行使用SD卡來擴容,轉而固定了設備的儲存空間,這些儲存空間仍會被分為Internal storage和External storage,不過這種情況下External storage基本上是總是可用的,你也可以使用
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)
來判斷External storage是否掛載。
可以通過Context下的getExternalFilesDir()方法獲取到App的external目錄,通過getExternalCacheDir()獲取到external緩存目錄。
這兩個目錄位于外置儲存空間目錄/Android/data/你的App的包名/下,你往這里面讀寫是不需要額外權限的(API 18以上),如果你的App的minSdkVersion <= 18,建議你在AndroidManifest.xml里加上這個權限:
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="18"/>
但是,如果你往這個目錄以外的地方讀寫文件,就需要運行時權限了(例如你要往External storage根目錄里寫一個日志文件啥的)
很多App或者第三方SDK會往External storage根目錄讀寫緩存,分分鐘逼死強迫癥,看著自己手機外置SD卡根目錄下各種奇奇怪怪的目錄,真的很崩潰好嗎?不過我相信隨著6.0及以上版本Android設備占有率的不斷上升,這個問題一定會慢慢解決的。
希望各位Android應用開發的同仁,盡量使用getExternalFilesDir()和getExternalCacheDir()方法,還用戶一個干凈整潔的External storage。
總結
以上是生活随笔為你收集整理的android6.0 sd卡卸载api,android6.0 用户关掉sd卡读取权限的情况下, 还能做到手机缓存么?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: date比较大小 mybatis_Hib
- 下一篇: Java 重写与重载