Android アプリのバックエンド インターフェース コードを書いています。バックエンド API を jar ファイルにパッケージ化し、メイン アプリに lib として含めたいと考えています。(ライブラリプロジェクトであっても同じ問題があります)。
この API の機能の 1 つは、リモート サーバーからファイルをダウンロードすることです。「ルートパス」をAPIに渡すメソッドがあります。
public void storeRemoteFile(String rootPath)
このメソッドはスレッドを開始し、バックグラウンドでファイルを取得して roothPath に保存します。このコードをコンソールで問題なく実行でき、ファイルが PC にダウンロードされます。そのため、jar ファイルに存在するクラスでこのメソッドを呼び出すと、ファイルのアクセス許可エラーが発生します。
java.io.FileNotFoundException: /storage/adcard0/Android/data/com.myapp/files/temp.zip: open failed: EACCES (Permission denied)
APIにファイルを書き込む権限を与える方法はありますか? そうでない場合、API jar がファイルをダウンロードできるようにし、ストレージ用にメイン アプリに渡す方法について何か提案はありますか?