提问人:AYMANE 提问时间:7/25/2023 更新时间:7/25/2023 访问量:270
Flutter : 将图片保存在图库中
Flutter : save image in gallery
问:
我希望将图像存储在图库中。但是,此功能似乎仅在调试期间起作用,当我构建 APK 并在手机上对其进行测试时。一旦我在没有调试的情况下安装了 APK,图像保存功能就不再起作用了。请务必注意,我已经拥有访问本地存储的必要权限。权限
我在两个版本的 Android 12 和 13 上对其进行了测试
var image = await boundary.toImage();
var byteData = await image.toByteData(format: ui.ImageByteFormat.png);
var ref = FFAppState().FrameRef;
final name = 'cl1box1_' + ref;
await ImageGallerySaver.saveImage(byteData!.buffer.asUint8List(),
name: name);
答:
0赞
user22213824
7/25/2023
#1
试试这个
在下面使用这个插件
-
saveImage() async { PermissionStatus result; if (Platform.isAndroid) { DeviceInfoPlugin deviceInfo = DeviceInfoPlugin(); AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo; if (androidInfo.version.sdkInt >= 33) { result = await Permission.photos.request(); } else { result = await Permission.storage.request(); } if (result.isGranted) { var image = await boundary.toImage(); var byteData = await image.toByteData(format: ui.ImageByteFormat.png); var ref = FFAppState().FrameRef; final name = 'cl1box1_' + ref; await ImageGallerySaver.saveImage(byteData!.buffer.asUint8List(), name: name); } } else { await openAppSettings(); } }
在AndroidManifest.xml上添加此代码
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
评论