0

我遇到的问题可能与硬件有关。无论如何,我很难过。

我已经编写了一些代码(我从中获取并修改了:将文本文件写入 SD 卡失败)我将代码放在下面。它在我的索尼爱立信 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();
    }

}

4

1 回答 1

1

就我而言,问题是我使用 USB 电缆将 Xperia ARC 连接到笔记本电脑。显然,如果你这样做,事情就不会完全正确。X8 没问题,所以我猜它是特定于手机的。计算机可能会锁定文件,从而阻止 Android 更新文件。不知道为什么我没有收到错误。未来读者的底线:尝试断开手机与计算机的连接。

于 2012-06-26T21:48:23.763 回答