gpt4 book ai didi

flutter :访问文件:/storage/emulated/0/Android/data?

转载 作者:行者123 更新时间:2023-12-03 03:23:50 26 4
gpt4 key购买 nike

我正在制作一个应用程序,在单击按钮时会截取整个屏幕的屏幕截图。显然图像转到:
/storage/emulated/0/Android/data/com.example.program-name/files

我已经使用 android 模拟器以及我的物理设备对此进行了测试。路径名称略有变化,但我仍然无法访问此图像。

我正在使用以下代码截取屏幕截图并保存:

takeScreenShot() async{
RenderRepaintBoundary boundary = globalKey.currentContext.findRenderObject();
ui.Image image = await boundary.toImage();
final directory = (await getExternalStorageDirectory()).path;
print(directory);
ByteData byteData = await image.toByteData(format: ui.ImageByteFormat.png);
Uint8List pngBytes = byteData.buffer.asUint8List();
File imgFile = new File('$directory/screenshot.png');
print (imgFile.toString());
imgFile.writeAsBytes(pngBytes);
}

反正有没有:
  • 访问此文件并将其移至计算机/手机上的其他位置,或
  • 将以下目录更改为指向您计算机上任何文件的目录?
  • final directory = (await getExternalStorageDirectory()).path;
    想法是将用户数据保存在表单上,​​并保存刚刚填写的页面图像以供将来引用。例如,提交表单,将屏幕截图图像保存到 PC 桌面图库。

    最佳答案

    这方面有问题。 #48208 #35783

    在 Android 上,您可以自己编写路径。

    Future<void> _screenshot() async {
    RenderRepaintBoundary boundary = globalKey.currentContext.findRenderObject();
    ui.Image image = await boundary.toImage();
    ByteData byteData = await image.toByteData(format: ui.ImageByteFormat.png);
    Uint8List pngBytes = byteData.buffer.asUint8List();
    Directory d = Directory('/storage/emulated/0');
    if (d.existsSync()) {
    Directory(d.path + '/MyApp').createSync();
    File imgFile = new File(d.path + '/MyApp/screenshot.png');
    print('saving to ${imgFile.path}');
    imgFile.createSync();
    imgFile.writeAsBytes(pngBytes);
    }
    }

    关于 flutter :访问文件:/storage/emulated/0/Android/data?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60039579/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com