2012-06-26 67 views
0

我遇到的問題可能與硬件有關。無論如何,我很難過。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(); 
    } 

}

+0

您是否嘗試過使用adb來查看您是否可以從shell或可能用adb pull中看到它? – kabuko

回答

1

在我的情況下,問題是,我有ARC的Xperia連接到使用USB電纜的筆記本電腦。顯然,如果你這樣做的話,事情並不正確。 X8沒有問題,所以我猜測它是特定於手機的。計算機可能會鎖定文件,從而阻止Android更新文件。不知道爲什麼我沒有得到一個錯誤。 未來讀者的底線:嘗試斷開手機與電腦的連接。

相關問題