Flutterでギャラリーに画像を保存する際のライブラリ
本家のExampleに書いてる通りなのだけれどもメモ
ライブラリのインストールはインストールページに書いてあるとおりだけど・・・
Androidの場合Manifest.xmlのApplicationタグ内に以下を書く必要があったり、
android:requestLegacyExternalStorage="true"
場合によりuses-permissionタグを書く必要があったりと色々なサイトで解説とかされています。
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
ただ、これらを追加しただけではストレージへのパーミッションをユーザーから得ないと以下のようなエラーが出て画像が保存できません。
android java.io.FileNotFoundException: open failed: EACCES (Permission denied)
まぁ考えてみれば当たり前だったのですが・・・上記のタグはあくまでもこのアプリで画像にアクセスするって宣言で許可はユーザーから得ないと行けないわけで。
Exampleページに書いてあるとおり画面を表示する際でもパーミッションを許可するようリクエストを出す必要があります。
Map<Permission, PermissionStatus> statuses = await [
Permission.storage,
].request();