0

ログファイルを sd (Samsung Galaxy Nexus の内部ストレージ) に書き込みました。実際、ファイルはウィンドウでは見えません。ユーザーがそれらにアクセスできるようにするにはどうすればよいですか?

    this.state = Environment.getExternalStorageState();

「マウント済み」を返します

これは私のコードです:

/**
 * Creates a new instance of Logger
 * 
 * */
public Logger() {
    String path = Environment.getExternalStorageDirectory()
            .getAbsolutePath();
    this.file = new File(path, "log.txt");
}



/**
 * Writes results to log file
 * 
 * **/
public void log(boolean isConnected, int signalStrength) {

    try {
        this.buf = new BufferedWriter(new FileWriter(this.file, true));
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    try {

        Calendar time = Calendar.getInstance();
        String result = time.getTime().toString() + " "
                + String.valueOf(isConnected) + " "
                + String.valueOf(signalStrength);

        this.buf.write(result);

        this.buf.flush();
        this.buf.close();

    } catch (IOException e) { // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

何も書き込みません(例外はありませんが)。マニフェストには次が含まれます。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

編集:

File path = Environment.getExternalStorageDirectory()
                .getAbsoluteFile();

役に立ちませんでした。

4

1 に答える 1

1

ファイルはそこにありますが、MediaScanner によってまだ取得されていません。次のようにシェルを開いて確認できます。

adb shell ls -l /mnt/sdcard/clown.txt

ファイルが取得されるのを待つか、再起動するか、(できれば)ファイルへの書き込みが完了したらMediaScannerConnection.scanFile()を呼び出す必要があります。

于 2012-08-06T04:07:36.767 に答える