本次是给uniAPP开发原生插件的项目
在开发过程中发现,保存好自己app内截获的图片视频后,相册里面并没有,只有去文件夹里面找,站在产品的角度来讲这就对用户非常的不友好。所以需要通知相册去扫描我们保存文件的地方。
低版本API中常用的就是通过广播去更新,举个例子(代码来源于看过的帖子,后附地址链接):
String path = "文件路径";
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri uri = Uri.fromFile(new File(path));
intent.setData(uri);
activity.sendBroadcast(intent);
(https://blog.csdn.net/xing_xiangrong/article/details/94602602)
这是我在低版本API中用到 方法,亲测可用,但是在高本版API中你会发现ACTION_MEDIA_SCANN
ER_SCAN_FILE已经被弃用。
但是我目前的插件项目是高版本API30(其实是自己nc把api设置为30),然后就出现了很多奇怪的问题。比如,以上方法就行不通。然后我在网上陆陆续续的查看了很多的类似方法,都没有实现。保存之后根本没法通知相册更新,在这里推荐一篇是我看到写的不错的文章,https://blog.csdn.net/xiayiye5/article/details/117221591
相信你们要问了,这文章行了吗?结果是:我按照这边文章测试了。文章的代码能跑起来,但是移到我的项目就不行!废话少说直接进入最终环节:
我就思考,上面那篇文基本我就是照着cv过来的,为什么不行?我一步一步排查,最终发现,我们存储的路径不一样。我是储存在getExter

在开发uniAPP原生插件时,遇到在Android 10及以上版本保存文件后相册未自动更新的问题。由于ACTION_MEDIA_SCANNER_SCAN_FILE已被弃用,尝试多种方法无效。发现在API 29以上,存储路径在android/data/data/包名下导致无法扫描。查阅官方文档发现Android 11开始强制分区存储,将存储路径改为外部存储并设置权限后,相册成功刷新。解决方案是针对targetSdkVersion 29的过渡措施,对于更高版本的问题尚无解。
最低0.47元/天 解锁文章
1055

被折叠的 条评论
为什么被折叠?



