我遇到的問題可能與硬件有關。無論如何,我很難過。Android FileWriter不能在索尼愛立信弧上工作,但可以在另一部手機上工作
我寫了一些代碼(我從Writing Text File to SD Card fails進行了修改)我已經將代碼放在下面。它可以在我的Sony Ericcson X8上正常工作。但是,在索尼愛立信Arc上,當我在手機上查找文件時找不到該文件!我一行一行地通過代碼,並沒有失敗。就好像它在打電話,我只是瞎了。我甚至可以在調試器中看到gpxfile的值是:
/mnt/sdcard/MyCompany/MyLog 但是當我使用Windows資源管理器來查找文件時,我當然看不到目錄MyCompany。手機上是否有一些設置(默默地)阻止寫入SD卡?
下面是代碼:
public static boolean generateNoteOnSD(String sFileName, String sBody) {
try {
String auxSDCardStatus = Environment.getExternalStorageState() ;
if (!auxSDCardStatus.equals(Environment.MEDIA_MOUNTED)) {
Log.i(TAG, "generateNoteOnSD auxSDCardSTatus: " + auxSDCardStatus);
}
if (auxSDCardStatus.equals(Environment.MEDIA_MOUNTED)) {
File root = new File(Environment.getExternalStorageDirectory(), "Dexcom");
if (!root.exists()) {
root.mkdirs();
}
File gpxfile = new File(root, sFileName);
FileWriter writer = new FileWriter(gpxfile, true);
String currentTimeString = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new Date());
writer.append(currentTimeString + ", " + sBody +System.getProperty("line.separator"));
//writer.newLine();
writer.flush();
writer.close();
Log.d(TAG,"generateNoteOnSD: Saved to file: " + sBody);
return true;
} else {
return false;
}
} catch(IOException e) {
e.printStackTrace();
return false;
//importError = e.getMessage();
//iError();
}
}
您是否嘗試過使用adb來查看您是否可以從shell或可能用adb pull中看到它? – kabuko