lisen87 / image_pickers

图片多选并压缩,保存图片到相册,视频多选,预览图片和视频
Apache License 2.0
90 stars 59 forks source link

保存图片失败 #128

Closed DaYang816 closed 11 months ago

DaYang816 commented 11 months ago
I/Timeline(18146): Timeline: Activity_launch_request time:582146614
W/ActivityThread(18146): handleWindowVisibility: no activity for token android.os.BinderProxy@334f674
D/ViewContentFactory(18146): initViewContentFetcherClass
I/ContentCatcher(18146): ViewContentFetcher : ViewContentFetcher
D/ViewContentFactory(18146): createInterceptor took 0ms
2
D/ForceDarkHelper(18146): updateByCheckExcludeList: pkg: com.yongjiang.airobot activity: com.leeson.image_pickers.activitys.PermissionActivity@ca1cf3f
2
W/System  (18146): A resource failed to call close. 
I/flutter (18146): null
I/Toast   (18146): Show toast from OpPackageName:com.yongjiang.airobot, PackageName:com.yongjiang.airobot

点击保存的时候的日志,null是我打印的回调文件路径 我的代码

  downImgs() async {
    var path = await ImagePickers.saveImageToGallery(imgList[0]);
    print(path);
   toast("保存成功".tr);
  }
lisen87 commented 11 months ago

imgList[0]中的图片url 能正常访问吗?确认一下相册图库中有没有新保存的图片。

------------------ 原始邮件 ------------------ 发件人: @.>; 发送时间: 2023年12月1日(星期五) 下午4:38 收件人: @.>; 抄送: @.***>; 主题: [lisen87/image_pickers] 保存图片失败 (Issue #128)

I/Timeline(18146): Timeline: Activity_launch_request time:582146614 W/ActivityThread(18146): handleWindowVisibility: no activity for token @. D/ViewContentFactory(18146): initViewContentFetcherClass I/ContentCatcher(18146): ViewContentFetcher : ViewContentFetcher D/ViewContentFactory(18146): createInterceptor took 0ms 2 D/ForceDarkHelper(18146): updateByCheckExcludeList: pkg: com.yongjiang.airobot activity: @. 2 W/System (18146): A resource failed to call close. I/flutter (18146): null I/Toast (18146): Show toast from OpPackageName:com.yongjiang.airobot, PackageName:com.yongjiang.airobot
点击保存的时候的日志,null是我打印的回调文件路径 我的代码 downImgs() async { var path = await ImagePickers.saveImageToGallery(imgList[0]); print(path); toast("保存成功".tr); }

直接回复此电子邮件,在 GitHub 上查看或取消订阅。 您收到此消息是因为您订阅了此线程。Message ID: @.***>

DaYang816 commented 11 months ago

一开始我保存成功了 ,去相册图库删除过,就那一次成功了,后面就都是失败 返回null,图片的链接是http的能显示

lisen87 commented 11 months ago

嗯,知道了,删除的图片应该是在相册回收站中还存在。或许是 我插件代码中查询数据库有问题

------------------ 原始邮件 ------------------ 发件人: @.>; 发送时间: 2023年12月1日(星期五) 下午4:48 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [lisen87/image_pickers] 保存图片失败 (Issue #128)

一开始我保存成功了 ,去相册图库删除过,就那一次成功了,后面就都是失败 返回null,图片的链接是http的能显示

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

DaYang816 commented 11 months ago

哦吼 我垃圾桶也清理过,还是失败的, 等待作者发布新的版本,感谢大佬

lisen87 commented 11 months ago

,好吧。什么手机什么系统?

------------------ 原始邮件 ------------------ 发件人: @.>; 发送时间: 2023年12月1日(星期五) 下午4:55 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [lisen87/image_pickers] 保存图片失败 (Issue #128)

哦吼 我垃圾桶也清理过,还是失败的等待发布新版

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

DaYang816 commented 11 months ago

小米mix3 安卓10

lisen87 commented 11 months ago

嗯,好,周一更新

------------------ 原始邮件 ------------------ 发件人: @.>; 发送时间: 2023年12月1日(星期五) 下午4:59 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [lisen87/image_pickers] 保存图片失败 (Issue #128)

小米mix3 安卓10

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

DaYang816 commented 11 months ago

好的 ,再次感谢大佬的插件和回复 👍 :)

lisen87 commented 11 months ago

image_pickers: ^2.0.4+6 版本发布了。还在审核中,稍后可以更新一下试试。或者直接使用github的依赖试试。

DaYang816 commented 11 months ago

好的,使用后给反馈

DaYang816 commented 11 months ago
I/Timeline(24564): Timeline: Activity_launch_request time:692186350
W/ActivityThread(24564): handleWindowVisibility: no activity for token android.os.BinderProxy@f5410e5
D/ViewContentFactory(24564): initViewContentFetcherClass
I/ContentCatcher(24564): ViewContentFetcher : ViewContentFetcher
D/ViewContentFactory(24564): createInterceptor took 0ms
2
D/ForceDarkHelper(24564): updateByCheckExcludeList: pkg: com.yongjiang.airobot activity: com.leeson.image_pickers.activitys.PermissionActivity@334f674
E/TAG     (24564): saveImgToGallery: has file
E/TAG     (24564): saveImgToGallery: 复制文件
I/flutter (24564): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (24564): │ 15:15:12.090 (+0:02:26.869550)
I/flutter (24564): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
I/flutter (24564): │ 🐛 null
I/flutter (24564): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/Timeline(24564): Timeline: Activity_launch_request time:692186413
W/ActivityThread(24564): handleWindowVisibility: no activity for token android.os.BinderProxy@6e205b
D/ViewContentFactory(24564): initViewContentFetcherClass
I/ContentCatcher(24564): ViewContentFetcher : ViewContentFetcher
D/ViewContentFactory(24564): createInterceptor took 0ms
2
D/ForceDarkHelper(24564): updateByCheckExcludeList: pkg: com.yongjiang.airobot activity: com.leeson.image_pickers.activitys.PermissionActivity@12885c2
E/TAG     (24564): saveImgToGallery: has file
E/TAG     (24564): saveImgToGallery: 复制文件
I/flutter (24564): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (24564): │ 15:15:12.147 (+0:02:26.925993)
I/flutter (24564): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
I/flutter (24564): │ 🐛 null
I/flutter (24564): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/Toast   (24564): Show toast from OpPackageName:com.yongjiang.airobot, PackageName:com.yongjiang.airobot

作者你好这是最新插件的日志 目前还是发现删除后没有保存成功 返回为null,第一次是成功的然后删除,相册垃圾桶也删除了,再操作保存没有成功 但是可以重复保存的,下面的日志是重新找图然后进行重复保存,相册有2张重复照片操作成功

2
D/ForceDarkHelper(24564): updateByCheckExcludeList: pkg: com.yongjiang.airobot activity: com.leeson.image_pickers.activitys.PermissionActivity@400c7fb
E/TAG     (24564): saveImgToGallery: has file
E/TAG     (24564): saveImgToGallery: 复制文件
I/flutter (24564): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (24564): │ 15:16:42.021 (+0:03:56.799950)
I/flutter (24564): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
I/flutter (24564): │ 🐛 /storage/emulated/0/Pictures/66 (1).png
I/flutter (24564): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/Toast   (24564): Show toast from OpPackageName:com.yongjiang.airobot, PackageName:com.yongjiang.airobot
DaYang816 commented 11 months ago

我循环2张图片保存,成功后去相册删除了一张,再去重复的保存操作,成功为1张,删除的那张就不会保存了 ,日志返回为null

lisen87 commented 11 months ago

循环保存的代码能提供一下不?我测试一下

DaYang816 commented 11 months ago

我就写了一个很简单的循环我感觉不是循环的问题,单个估计也这样,我又找了一个小米10的手机,安卓版本13的,也是同样的问题,我怀疑是不是小米特有的,别的机型我测了一下1+T ,华为 都没碰到这个问题

List imgList=[];
//imgList的值是接口给的
  //下载图片
  downImgs() async {
    for (var item in imgList) {
      var path = await ImagePickers.saveImageToGallery(item);
      logD(path);
    }
    toast("保存成功".tr);
  }
lisen87 commented 11 months ago

我测试了,小米10s安卓13没问题,红米 9 没问题,没找到小米10.

你看看能替换一下你本地的这个方法测试一下吗?

public void saveImgToGallery(final String saveUrl, final IFinishListener iFinishListener) { final String fileName = saveUrl.substring(saveUrl.lastIndexOf("/") + 1); String dirPath = appPath.getAppImgDirPath(); FileInfo fileInfo = null;

    //判断文件是否下载过
    final File file = new File(dirPath,fileName);
    if (file.exists() && file.length() > 0){
        Log.e("TAG", "saveImgToGallery: has file" );
        fileInfo = new FileInfo();
        fileInfo.setBeforeDownload(true);
        fileInfo.setUri(PictureFileUtils.parUri(context,file));
        fileInfo.setPath(file.getAbsolutePath());
        fileInfo.setSize(file.length());
    }

    if (fileInfo != null && fileInfo.size > 0) {
        Log.e("TAG", "saveImgToGallery: 复制文件" );
        fileInfo = copyImgToPicture(fileInfo.getPath(), System.currentTimeMillis()+fileName);
        notifyGallery(fileInfo.getPath());
        if (iFinishListener != null) {
            iFinishListener.onSuccess(fileInfo);
        }
    } else {
        Log.e("TAG", "saveImgToGallery: 开始下载" );
        download(saveUrl,dirPath , new IDownload() {
            @Override
            public void onDownloadSuccess(String filePath, String fileName) {
                //下载到私有目录成功并复制到公有目录
                FileInfo fileInfo  = copyImgToPicture(filePath, fileName);
                notifyGallery(fileInfo.getPath());
                    /*File originFile = new File(filePath);
                    originFile.delete();*/
                if (iFinishListener != null) {
                    iFinishListener.onSuccess(fileInfo);
                }
            }

            @Override
            public void onDownloadFailed(String errorMsg) {
                if (iFinishListener != null) {
                    iFinishListener.onFailed(errorMsg);
                }
            }
        });
    }

}
lisen87 commented 11 months ago

GitHub我提交了一下代码,或者 依赖一下GitHub的版本测试一下吧。测试机实在不好找

DaYang816 commented 11 months ago

GitHub的版本 我测一下

DaYang816 commented 11 months ago

GitHub的版本成功了,测了一下没问题了

DaYang816 commented 11 months ago

辛苦大佬了,感谢解决问题,: ) 👍

lisen87 commented 11 months ago

互相学习。一会我发版本。说一下原因吧, 第二次存储时,因为图片的名称已经存在了,导致存储失败。而我手边的手机刚好 系统会自动重命名,太巧了。我用Google的模拟器 也是会 自动重命名的,所以一直没有出现问题。

DaYang816 commented 11 months ago

您这么说我就发现了,,我这边的手机返回的path文件名字是一样的如果是重复文件会(1)这样命名类似window文件重复命名规则。感谢大佬的解释