Open motorailgun opened 4 years ago
今はダウンロード処理をまるっとDownloadManagerに投げてるだけなんですよね…。 https://developer.android.com/reference/android/app/DownloadManager
オプションで保存先フォルダが指定されてる時だけ自前でダウンロードしてそこに出力するとかしたら出来るだろうけど、動画とかMisskeyとかだと巨大なデータがありうるので、アプリがバックグラウンドになった後の動作制限に対応するため結局DownloadManagerと同等の処理を自前実装しないといけないので、やや高コストだと思います。
なるほど。思ったより大変でした…。
発想をかえて「ダウンロード自体はDownloadManagerに任せる。完了イベントを受け取ったらファイルを移動する」というのも検討してみましょう。あれ、でもファイルの移動に時間がかかる(onReceive内部に収まらない)ならサービスを書くのは一緒だからダウンロード処理だけ節約しても工数かわんないな…?
https://developer.android.com/reference/android/app/DownloadManager.Request.html#setDestinationUri(android.net.Uri) DownloadManagerに出力先のpathを指定するAPIはあるが、Android Q で増えた制限を見ると出力先にSDカード等は指定できなくなった。
添付メディアのダウンロード先を、現在
/sdcard/Download
に固定されているものを設定にて変更できるようにできませんでしょうか。