少なくとも部分的な回答で更新すると思っただけです。私の問題の少なくとも一部は、Razr Maxx のデバッグ モードでのテストに関係しています。USB デバッグ経由で接続している場合、新しいファイルを作成する呼び出しは次のように失敗します。
06-06 10:04:30.512: W/System.err(2583): java.io.IOException: オープンに失敗しました: EACCES (許可が拒否されました) 06-06 10:04:30.512: W/System.err(2583): java.io.File.createNewFile(File.java:940)
デバイスまたはエミュレーターでアプリをスタンドアロンで実行している場合、すべて期待どおりに動作します。これが特に Razr Maxx に関連しているのか、それとも他の問題に関連しているのかわかりませんか?
動作している私のコードは(から:Androidの外部ストレージにファイルを書き込む):
private void writeToSDFile(){
// Find the root of the external storage.
// See http://developer.android.com/guide/topics/data/data- storage.html#filesExternal
File root = android.os.Environment.getExternalStorageDirectory();
mStatusTV.append("\nExternal file system root: "+root);
// See https://stackoverflow.com/questions/3551821/android-write-to-sd-card-folder
File dir = new File (root.getAbsolutePath() + "/download");
dir.mkdirs();
File file = new File(dir, "myData.txt");
try {
file.createNewFile();
FileOutputStream f = new FileOutputStream(file);
PrintWriter pw = new PrintWriter(f);
pw.println("Hi , How are you");
pw.println("Hello");
pw.flush();
pw.close();
f.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
Log.i(TAG, "******* File not found. Did you" +
" add a WRITE_EXTERNAL_STORAGE permission to the manifest?");
mStatusTV.append("Write File 1: " + e.getMessage());
} catch (IOException e) {
e.printStackTrace();
mStatusTV.append("Write File 2: " + e.getMessage());
}
mStatusTV.append("\n\nFile written to "+file);
}