0

ExternalStorage(GalaxyTab2 7.0の「内部」8GBメモリ)の/ sdcardにファイルを作成するコードがあります。

directory = new File(Environment.getExternalStorageDirectory(),
                "/logs");
directory.mkdirs();
log = new File(directory.getPath() + "/" + this.filename);
boolean created = log.createNewFile();

最後の行で、次のエラーが発生します。

... java.io.IOException: open failed: EACCES (Permission denied)
...     at java.io.File.createNewFile(File.java:948)

私は持っている

  • マニフェストの適切な場所に外部ストレージへの書き込み許可を設定する
  • メモリがPCにマウントされていないことを確認しました
  • ファイルエクスプローラーで /logs/ フォルダーに正しい権限があることを確認しました
  • トピックに関するすべてのスタックオーバーフロースレッドを読んでください-何も機能しませんでした

この動作を引き起こす可能性のあるヒントはありますか?

よろしくお願いします

4

2 に答える 2

2

以下の権限をマニフェスト ファイルに追加します。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
于 2013-06-06T09:51:19.170 に答える
1

すべてのメモリ アクセスを管理する (自作の) ライブラリを使用しました。このライブラリ プロジェクトにはWRITE_EXTERNAL_STORAGE権限があります。このライブラリを参照するアプリには、ストレージに直接アクセスしていない場合でも、この権限が必要です。

于 2013-06-10T09:45:50.630 に答える