【问题标题】:Image saved by the app doesn't show up in the gallery应用程序保存的图像未显示在图库中
【发布时间】:2021-03-29 19:39:17
【问题描述】:

我试图在颤振中创建一个 whatsapp 状态保护程序。我试图保存whatsapp状态。我在/storage/emulated/0/statuses/ 中创建了一个文件夹状态,并且复制过程顺利。但该图片未显示在图库应用中。

所以我什至尝试将它存储在DCIM/Camera 中,但它仍然没有出现在那里。但是当使用文件资源管理器复制相同的图像时,该图像会显示在图库应用程序中。我认为图像属性有问题。

用来保存的代码在这里。

saveFile(filePath) async {
    String newFilename;
    File originalFile = File(filePath);
    Directory _directory = await getExternalStorageDirectory();
    if (!Directory("/storage/emulated/0/statuses/").existsSync()) {
      Directory("/storage/emulated/0/statuses/")
          .createSync(recursive: false);
    }
    String curDate = DateTime.now().toString();
    newFilename = "/storage/emulated/0/statuses/VIDEO-$curDate.jpg";

    await originalFile.copy(newFilename).then((value) {
      print("Saved: " + newFilename);
    });
  }

【问题讨论】:

    标签: image flutter dart flutter-image


    【解决方案1】:

    当您更改媒体时,您应该告诉设备重新扫描。此image saver plugin 将通知 Android 操作系统有关已保存的媒体。

    如果你不想要插件,可以使用平台通道自己编写原生代码。

    sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
    

    herehere 讨论了这个问题。

    【讨论】:

    • 好像是java代码。是否有任何关于颤振的资源或文档
    • 请看我在回答中提到的 Github issue。
    • 您在那个 github 问题中没有提到任何颤振代码。请提供代码帮助我。
    • 您应该将媒体更改通知操作系统。 Dart 代码不能做这样的事情,它是一个 Android 专用协议。
    • 那有什么办法解决呢?
    猜你喜欢
    • 1970-01-01
    • 2017-05-02
    • 2018-12-26
    • 2019-12-17
    • 2021-10-23
    • 2018-07-15
    • 2014-02-08
    • 2018-02-02
    • 1970-01-01
    相关资源
    最近更新 更多