Flutter 我无法将小部件截图保存到Flitter中的gallery

Flutter 我无法将小部件截图保存到Flitter中的gallery,flutter,flutter-layout,Flutter,Flutter Layout,错误显示:I/flatter(24734):{filePath:null,errorMessage:java.io.FileNotFoundException:/storage/simulated/0/Pictures/1622347717438.jpg:open失败:EACCES(权限被拒绝),issucess:false} 问题:未在库中保存小部件的屏幕截图 以下是完整代码: 导入'dart:async'; 导入“dart:键入的_数据”; 将“dart:ui”导入为ui; 进口“包装:di

错误显示:I/flatter(24734):{filePath:null,errorMessage:java.io.FileNotFoundException:/storage/simulated/0/Pictures/1622347717438.jpg:open失败:EACCES(权限被拒绝),issucess:false}

问题:未在库中保存小部件的屏幕截图

以下是完整代码:

导入'dart:async';
导入“dart:键入的_数据”;
将“dart:ui”导入为ui;
进口“包装:dio/dio.dart”;
进口“包装:颤振/材料.省道”;
导入“package:flatter/rendering.dart”;
进口“包装:fluttoast/fluttoast.dart”;
导入“package:image_gallery_saver/image_gallery_saver.dart”;
导入“package:path_provider/path_provider.dart”;
导入“package:permission_handler/permission_handler.dart”;
void main()=>runApp(MyApp());
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“将图像保存到库”,
主题:主题数据(
主样本:颜色。蓝色,
),
主页:MyHomePage(),
);
}
}
类MyHomePage扩展StatefulWidget{
@凌驾
_MyHomePageState createState()=>\u MyHomePageState();
}
类_MyHomePageState扩展状态{
GlobalKey _GlobalKey=GlobalKey();
@凌驾
void initState(){
super.initState();
_requestPermission();
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(“将图像保存到图库”),
),
正文:中(
子:列(
儿童:[
重新绘制边界(
键:_globalKey,
子:容器(
宽度:200,
身高:200,
颜色:颜色,红色,
),
),
容器(
填充:仅限边缘设置(顶部:15),
孩子:升起按钮(
按下时:\ u保存屏幕,
子项:文本(“保存本地图像”),
),
宽度:200,
身高:44,
),
],
),
));
}
_requestPermission()异步{
映射状态=等待[
许可。存储,
].request();
最终信息=状态[权限.存储].toString();
打印(信息);
_toastInfo(信息);
}
_saveScreen()异步{
渲染边界=
_globalKey.currentContext!.FindEnderObject()作为RenderPaintBoundary;
ui.Image=wait boundary.toImage();
ByteData?ByteData=await(image.toByteData(格式:ui.ImageByteFormat.png)
作为未来者);
if(byteData!=null){
最终结果=
等待ImageGallerySaver.saveImage(byteData.buffer.asUint8List());
打印(结果);
_toastInfo(result.toString());
}
}
_toastInfo(字符串信息){
Toast.showtoos(msg:info,toastLength:Toast.LENGTH\u LONG);
}
}
请帮帮我 我正在使用我的Android手机调试应用程序,而不是模拟器。首先,手机允许访问媒体文件,但当我点击按钮时,显示错误

如果在Android上运行,请在\Android\app\src\main\AndroidManifest.xml中添加写入外部存储权限

例如:

<manifest>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    ...
    <application>
        ...
        <activity> 
            ...
        </activity>
    </application>
</manifest> 

...
...
...

这是否回答了您的问题?您是否在android上运行它?@RushikeshTalokar yess在\android\app\src\main\AndroidManifest.xml中的“”之后仍然面临相同的错误添加此权限后,卸载应用并重试!!这是工作,谢谢@RushikeshTalokar
<manifest>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    ...
    <application>
        ...
        <activity> 
            ...
        </activity>
    </application>
</manifest>