DownloadManager を使用して写真をダウンロードし、外部の写真ディレクトリに保存します。
.setDestinationInExternalPublicDir(Environment.DIRECTORY_PICTURES, File.separator + filename)
Marshmallow には (予想どおり) WRITE_EXTERNAL_STORAGE が必要ですが、Android Q 以降では許可なしで正常に動作します。なぜそうなのですか?スコープ ストレージが原因ですか?