[英]Android: How to get storage of external sd-card?
在我的設備中,我有32GB的內部存儲器和64GB的SD卡。 我喜歡使用此方法獲取外部可用大小(基於此線程, Android獲得內部/外部內存的可用大小 ):
public static long getAvailableExternalMemorySize() {
if (externalMemoryAvailable()) {
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return availableBlocks * blockSize;
} else {
return 0;
}
}
當我運行此代碼時,它僅顯示內部內存的可用存儲空間。 為什么不顯示外部SD卡大小? 在設備存儲上,我有11GB的可用空間,而在外部SD卡上有40GB的可用空間。
問題是沒有api可以訪問android上的外部SD卡。 在android> = 4.4上,無法寫入外部sd卡。
您唯一可以做的(非常特殊,不建議在公共應用程序中使用,但可以在受限環境中使用!),如果您確定設備的版本低於android 4.4:請列出迄今為止可以使用的路徑列表在許多設備上,並檢查所有設備是否正確存在。 也許你很幸運。
我找到了一種讀取可移動SD卡存儲的解決方案:
此方法以字節為單位重新計算可移動sd卡上的可用內存大小。
public static long getFreeExternalMemorySize() {
String secStore = System.getenv("SECONDARY_STORAGE");
File path = new File(secStore);
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return availableBlocks * blockSize;
}
閱讀以下鏈接后,您可以了解一個想法。
http://developer.android.com/guide/topics/data/data-storage.html#files外部
用於處理SD卡。 訪問前,請檢查是否已安裝sd卡。
http://developer.android.com/training/basics/data-storage/files.html#WriteExternalStorage
Check SD卡可寫且可讀。
http://developer.android.com/training/basics/data-storage/files.html#GetFreeSpace
獲取sdcard或內部存儲中的可用空間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.