2015-01-14 32 views
0

這更多的設計,而不是技術問題...在KitKat谷歌阻止寫入SD卡,除了指定的應用程序文件夾。對於只顯示內容的應用程序而言,沒關係,但生成內容的應用程序(我的意思是用戶在該應用程序的幫助下生成內容:文檔,數據庫,統計數據)呢?我擔心的是,如果卸載應用程序,則所有數據都會被系統清除。大多數用戶並不期望這種行爲,他們只是不會考慮這一點。當應用程序無法按預期工作時,用戶會做什麼?是的,嘗試重新安裝它作爲第一個解決方案。丟失所有的用戶文件!將它們備份到雲上可能是一種選擇,但SD存儲主要用於大型文件,在移動網絡上備份它們會很昂貴。如何保留用戶在KitKat +上生成的內容?

所以問題是這樣的應用程序的開發人員:你採取了什麼方法來克服這種限制後果?

回答

0

就像一直都是

File folder = new File(Environment.getExternalStorageDirectory(), "/myApp/"); 
folder.mkdirs(); 
File file = new File(folder, "file.jpg"); 

// open output stream and write to it... works fine... 

的作品,因爲它應該在Android上的任何版本。

據我所知,對KitKat的限制是,在你調用folder.mkdirs();後,其他應用程序將無法訪問它。在Android上,爲每個應用程序創建一個新用戶,他們如何控制/阻止權限,所以我相信KitKat中發生了什麼變化(真的不確定,只是在這裏猜測)是每個文件創建都會將該文件標記爲只讀主人和其他人。