與文件存儲最接近的文檔是this post(如果無法訪問,請參閱下面的內容),但這會給我留下幾個問題。在角落上訪問存儲
我真的真的很喜歡關於什麼路徑映射到這裏的存儲空間的明智解釋,看到我們應該如何對它們進行硬編碼,以及我們期望如何精確訪問它們。實際的代碼示例將是最高級的。我最好的猜測是:
- /sdcard->映射到內部eMMC插槽,並且訪問受到限制。 Environment.getExternalStorageDirectory(); ...仍然返回這個。
- /media - >映射到內部的8GB內存(我可以寫到這個)
- /data - >?
- ? - >映射到可選的microSD卡
如何訪問外部存儲設備(可選,另外可以彈出的設備)sdcard,如果/sdcard maps to restricted storage instead?
我們引用的Nook開發者文檔:
背景有對市場的今天,一個可用來在/ data分區 應用程序和一個角落 顏色設備只有250MB兩種不同的分區方案4GB可用於/ data分區上的 應用程序。因此,應用程序的設計和開發勢在必行 有效地管理空間。未能這樣做的應用程序將不會被 通過商店接受分發。
領域相關技術建議或解決方案,如果你的 應用程序需要大量數據(包括但不限 於圖片,音頻或視頻內容),你應該在運行時下載這些 資源,並將它們存儲在更大的分區 設備。如果您的應用程序將請求和存儲超過 100MB的數據或資源必須由以下 限制遵守:
您的應用程序中提供了大量的數據是描述 必須清楚和明確規定由 應用程序使用/交付。您必須將您的資源和數據寫入適當的 分區。您可以檢測,如果該設備具有放大/數據 分區如下:
StatFs stat = new StatFs("/data"); long bytesAvailable = (long)stat.getBlockSize() *(long)stat.getBlockCount(); long megAvailable = bytesAvailable/1048576; if (megAvailable > 1000){ ... write your resources in /data } else { ... write your resources on /mnt/media ... }
在此書寫/數據
數據到應用程序的私人空間FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_WORLD_READABLE);
你的應用程序不應該承擔 存在設備上的SD卡,但可以通過呼叫測試一個 至
Environment.getExternalStorageState();如果未找到SD卡, 您的應用程序必須正常退出,並通知用戶 關於退出的原因。
記住,訪問/媒體分區,以及 ExternalStorage你需要在你的清單聲明:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"> </uses-permission>
這似乎是不可能訪問您提供的鏈接:http://nookdeveloper.zendesk.com/entries/20257971-updated-what-are-the-size -constraints-on-my-applications沒有註冊(這看起來不像一個單擊過程)。你應該在某個地方複製討論,這樣更多的人可以訪問它。 – Idolon
說文字被複制。 – Turnsole