Android 保存图片到系统图库并通知相册刷新在部分手机的相册里无法查看的问题
场景
最近做一个保存应用的图片并插入到系统图库同时通知相册刷新的功能,做完后发现在部分华为和三星的手机上出现虽然图片保存成功了,但是相册却找不到图片的问题,很困惑,查找文件夹图片也已经存在,可就是在相册里刷新不出来。最后百般尝试找到了解决办法:
- 保存的方法添加写入的动态权限
- 创建文件路径可选择Environment.getExternalStorageDirectory(),也就是(/storage/emulated/0/com.xx.xxx.xxx/),之前有问题的版本使用的是context.getExternalFilesDir(null)也就是(/storage/sdcard/Android/data/com.xxx.xxx/),部分手机相册无法找到此路径或者没有权限,具体我也没细研究
- 使用MediaStore插入到系统相册
- 使用广播Intent.ACTION_MEDIA_SCANNER_SCAN_FILE通知相册刷新
下面是具体实现:
@NeedsPermission({Manifest.permission.WRITE_EXTERNAL_STORAGE})public void saveImageToGallery(Bitmap bitmap) {// 首先保存图片File file = null;String fileName = System.currentTimeMillis() + ".jpg";File root = new File(Environment.getExternalStorageDirectory(), getPackageName());File dir = new File(root, "images");if (dir.mkdirs() || dir.isDirectory()) {file = new File(dir, fileName);}try {FileOutputStream fos = new FileOutputStream(file);bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);fos.flush();fos.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}//其次把文件插入到系统图库try {MediaStore.Images.Media.insertImage(this.getContentResolver(),file.getAbsolutePath(), fileName, null);} catch (FileNotFoundException e) {e.printStackTrace();}// 通知图库更新if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {MediaScannerConnection.scanFile(this, new String[]{file.getAbsolutePath()}, null,new MediaScannerConnection.OnScanCompletedListener() {public void onScanCompleted(String path, Uri uri) {Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);mediaScanIntent.setData(uri);sendBroadcast(mediaScanIntent);}});} else {String relationDir = file.getParent();File file1 = new File(relationDir);sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.fromFile(file1.getAbsoluteFile())));}}
申请动态权限自己添加,实现了这些问题就解决了,目前手上的机型相册都可以正常拿到保存的图片了。
Android 保存图片到系统图库并通知相册刷新在部分手机的相册里无法查看的问题相关推荐
- Android保存图片到系统图库
原文->http://stormzhang.github.io/android/2014/07/24/android-save-image-to-gallery/ 最近有些用户反映保存图片之后在 ...
- [Android Pro] Android保存图片到系统图库
http://stormzhang.github.io/android/2014/07/24/android-save-image-to-gallery/ http://blog.csdn.net/x ...
- android 6.0获取图片地址,Android应用开发Android 保存图片到系统相册(三星6.0有效)...
Android 保存图片到系统相册(三星6.0有效).今天要做一个保存图片到系统图库的功能,自身能力较浅,所以只能搜索了但发现网上的方法有几处bug,所以自己总结一下防止以后忘掉也想和大家分享一下 ...
- Android 保存图片到系统相册(三星6.0有效)
今天要做一个保存图片到系统图库的功能,自身能力较浅,所以只能搜索了但发现网上的方法有几处bug,所以自己总结一下防止以后忘掉也想和大家分享一下. 首页网上保存图片并插入系统图库的方法: // 首先保存 ...
- android保存图片到系统相册及图库更新
public static void saveImageToGallery(Context context, Bitmap bmp) { // 首先保存图片 File appDir = ...
- android 系统相册 多远,【系统相册】Android 保存图片到系统相册
保存完图片后,可以在内存设备的文件系统相册目录下看到对应图片(以小米手机为例,系统相册的路径为:/storage/emulated/0/DCIM/Camera).但是,使用系统图库无法马上看到该图片, ...
- Android保存图片到系统相册
先说一下思路,我是这样做的,先保存一张图片到可写路径下,用cocos2d的节点截屏功能,保存之后就可以 保存Bitmap到本地指定路径下 ,然后通过广播,通知系统相册图库刷新数据. 先说如何节点截屏: ...
- android 图库显示,【Android】 保存图片到系统图库, 并立即显示在图库中
搬运原链接:http://stormzhang.github.io/android/2014/07/24/android-save-image-to-gallery [正文] 最近有些用户反映保存图片 ...
- android保存图片至系统相册
0. 写在前面 最近需要做这个功能,然后在网上找了下资料,这篇博文不错,写的比较全而且比较清楚,自己也试了,没问题,转载过来,下次还要用不用再找了! 转载自http://blog.csdn.net/x ...
- Android 如何从系统图库中选择图片
这几天我都在做Android的App,同时学习它的API,我将分享一些我学到的东西,比如: 如何从系统图库中选择图片. 首先,让我们来看看如何将手机系统图库集成到你的App中,然后再从图库中选择 ...
最新文章
- CTA核心技术及应用峰会开幕!(附第二日参会攻略)
- 交换机组网典型故障案例及处理思路
- 自定义SpringBoot项目的Maven原型
- PIC单片机入门_汇编/混编/C编比较
- 天池读书会六月场来啦,零基础也能听的懂的编程分享!
- Hi3518编译器安装
- Go Web编程--应用ORM
- 2020中科院sci分区查询_2020年中科院分区(基础版)更新
- c语言程序设计实验指导实验报告,C语言程序设计实验指导及报告.doc
- redis srandmember_Redis五大数据类型使用场景
- 传智播客java测试题_传智播客java笔试题
- 马克维茨组合matlab,马克维茨投资组合模型的matlab计算.pdf
- java三猴分桃多线程,浅谈数学趣题:三翁垂钓和五猴分桃
- mac电脑键盘失灵怎么办
- 德怀特·艾森豪威尔(1890-1969)美国第34任总统,陆军五星上将。
- Excel中快速删除换行
- 【蓝桥杯省赛学习题Java】座次问题
- 叶脊网络架构(Spine-Leaf)
- JVAV SE冒泡排序
- EDI X12 997 功能性确认 Functional Acknowledgment
热门文章
- 多关键词匹配个人解决方案
- unit英语读音_unit是什么意思_unit翻译_读音_用法_翻译
- python ttk.notebook_Ttk Notebook and PNotebook
- 日夕如是寒暑不间,基于Python3+Tornado6+APScheduler/Celery打造并发异步动态定时任务轮询服务
- 对腾讯云qcloud音视频通信SDK的调研(优缺点)
- 英语学习逆向法 (钟道隆 著)
- 阿里数据科学家一次讲透数据中台,15页PPT精华,速转走!
- 日期转换和日历的使用方法
- python走迷宫_python-走迷宫
- scala时间处理-获取今天日期,昨天日期,本周时间,本月时间,时间戳转换日期,时间比较