2011-07-18 39 views
0

我一年前開發的應用程序只是在sdcard根文件夾中寫入備份。 工作正常,直到我現在得到抱怨說,新的droid3確實將所有文件保存到SD卡本身的文件夾/ SD卡。Android的Droid3不同的SD卡文件系統?

現在看來我的應用程序無法處理該問題。它確實表示「寫入成功」,但用戶在其SD卡上的任何位置都找不到該文件,同時應用程序嘗試從SD卡的根目錄讀取備份,但找不到任何內容。

它似乎是一個文件系統的行爲,不堅持典型的android文件系統,所以我卡住了,因爲我也沒有droid3來測試。任何幫助或建議?

感謝克里斯

File root = Environment.getExternalStorageDirectory(); 
if (root.canWrite()) { 
    File gpxfile = new File(root, DATABASE_TABLE + ".myd"); 
    FileWriter gpxwriter = new FileWriter(gpxfile); 
    BufferedWriter out = new BufferedWriter(gpxwriter); 
// later i write for example: 
out.write("<data>\n"); 

在這裏我如何讀

File root = Environment.getExternalStorageDirectory(); 
if (root.canRead()) { 
File gpxfile = new File(root, DATABASE_TABLE + ".myd"); 
FileReader gpxwriter = new FileReader(gpxfile); 
BufferedReader in = new BufferedReader(gpxwriter); 
while ((dummystr2 = in.readLine()) != null) 
    { 
     // read data line by line 
    }    
+0

把你的讀/寫代碼了一開始,該SD卡不總是每個平臺的同一個地方訪問,所以看到你目前如何做,就可能會節省大家的時間 – Idistic

+0

THX ...添加演示代碼 –

+0

查看更新的答案,至少這是一個起點 – Idistic

回答

0

我還是覺得你應該把你的代碼上來給大家看看按註釋。

但是,如果你想測試在真實設備上這裏是一個地方,你可以做到這一點Real Device Testing via DeviceAnywhere

我認爲你可以得到他們的服務三年免費時間,你可能有赴湯蹈火(聽銷售助理在你的身上發表聲明並試圖簽署你),但它是在沒有擁有該設備的情況下在實際設備上進行測試的一種方式(並且它是在3g/4g網絡上運行的)

有定價困惑但絕對昂貴免費試用版應該讓你完成你所需要完成的任務我認爲如果你能讓他們把Droid 2搞定。

因爲他們沒有顯示機器人3(但他們可能有一個,它只是沒有列出)我敢打賭,如果你與銷售團隊說話,很有趣,但我沒有看到我的興趣就像機器人3一樣,他們可能會在幾天內附上一個。

UPDATE: 所以我做了一些測試一個2.3.3設備想着他們可能有一些問題的根訪問權限的(認爲我讀的地方,這是不好的形式),但它工作得很好。

所以,我做多一點的搜索,似乎有些裝置返回MNT/SD卡的外部存儲,即使設備使用MNT/SD卡-EXT的實際外部SD

從我已閱讀這意味着它實際上寫入到內部存儲,並寫作(如果你可以稱之爲)並且不讀取。見Stack Flow Similar Question/Answer

類的一些終端用戶Droid 3 Users - See Page 2他們說在那裏,它創建了一個內部的SD卡分區確認,雖然目前還不清楚,如果這是典型的行爲或將在以前使用的SD卡的結果,意見似乎有所不同,但他們確實對於具有> 8GB內部存儲的設備似乎是一個真正的問題。