前提
AndroidStudioでHttp通信で取得した画像データを表示するアプリケーションを作成しております。
Android側がサーバーで、nanohttpdを用いております。
java.nio.fileを用いて取得したpngファイル(nanohttpdのキャッシュフォルダにあるテンポラリファイル)をストレージにコピーしようとしているのですが、java.nio.file.AccessDeniedExceptionとなり書き込めません。
実現したいこと
http通信で取得したpngファイルをandroidのストレージに保存したく存じます。
発生している問題・エラーメッセージ
java.nio.file.AccessDeniedException: /storage/emulated/0/paint1.png
該当のソースコード
java
1 try{ 2 Files.copy(tempPath,storagePath); //storagePath: "/storage/emulated/0/paint1.png" tempPath: "/data/user/0/com.example.httpserver_fj/cache/NanoHTTPD-563227396367479340" 3 }catch(IOException e){ //e: "java.nio.file.AccessDeniedException: /storage/emulated/0/paint1.png" 4 textView.setText("だめ"); 5 }
試したこと
(1) AndroidManifest.xmlに下記permissionの記述は入れております。
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
(2) Android端末側にて権限の付与も行っております。
設定 > アプリと通知 > 当該アプリ > 権限 > ストレージ > 許可
(3)保存先を"/storage"、"/storage/emulated/0/"と変更して行っておりますが、エラーは変わらず出ます。
補足情報(FW/ツールのバージョンなど)
端末側:Android 10
AndroidStudio側:
Android Gradle Plugin Version:7.2.1
Gradle Version:7.3.3
その他必要な情報がございましたらご指示いただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー