arcanum_jp’s blog

おっさんの日記

flutter image_gallery_saver のメモ

Flutterでギャラリーに画像を保存する際のライブラリ

 

pub.dev

 

本家のExampleに書いてる通りなのだけれどもメモ

 

ライブラリのインストールはインストールページに書いてあるとおりだけど・・・

pub.dev

 

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();