便捷保存图片到相册并触发扫描更新
需积分: 47 36 浏览量
更新于2024-09-02
收藏 2KB TXT 举报
这段代码提供了两个关键功能:将Bitmap图像保存到Android设备的相册并自动触发相册更新,以及检查应用是否具有访问外部存储的权限。我们首先来看如何实现这两个功能。
1. **图片保存到相册(saveBmp2Gallery方法)**
- 方法`saveBmp2Gallery`接收三个参数:一个Activity上下文`context`,一个Bitmap对象`bmp`,和一个自定义图片名`picName`。
- 首先,通过`Environment.getExternalStorageDirectory()`获取设备的外部存储路径,然后构建完整的图片保存路径,如`/storage/emulated/0/DCIM/Camera/picName.jpg`。
- 使用`MediaStore.Images.Media.insertImage()`方法将Bitmap数据插入到媒体库,这个方法需要一个ContentResolver,Uri,以及图片的完整路径。这里,Uri是通过`Uri.fromFile(file)`创建的,确保指向新创建的文件。
- 发送一个ACTION_MEDIA_SCANNER_SCAN_FILE的广播,告知系统扫描新的文件,以便同步更新相册中的图片列表。最后,通过`ToastUtils.showShortToast()`显示保存成功的提示。
2. **检测外部存储权限(verifyStoragePermissions方法)**
- 当用户需要访问外部存储时,通常需要检查应用是否已经获得了相应的权限。`verifyStoragePermissions`方法负责这个任务。
- 使用`ActivityCompat.checkSelfPermission()`检查应用是否已获得`WRITE_EXTERNAL_STORAGE`权限。如果权限不足,返回值将不等于`PackageManager.PERMISSION_GRANTED`。
- 如果权限缺失,调用`ActivityCompat.requestPermissions()`请求权限,并设置一个临时请求码`REQUEST_EXTERNAL_STORAGE`。这将启动一个对话框让用户确认授权,用户同意后,应用程序会继续执行。
总结来说,这段代码的核心是图片的保存逻辑,它涉及到了Android的文件系统操作、媒体库的插入以及媒体扫描器的使用,确保新保存的图片能够被系统自动添加到相册中。同时,通过权限检查,保证了应用在需要写入外部存储时能够得到用户的许可。这对于任何需要用户上传或管理照片的应用来说都是至关重要的功能。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2017-10-27 上传
2023-09-04 上传
2020-10-17 上传
2021-01-20 上传
2020-09-03 上传
2019-02-12 上传
ITKobi小丸子
- 粉丝: 11
- 资源: 8
最新资源
- js-deli-counter-js-apply-000
- Android应用源码rock播放器-IT计算机-毕业设计.zip
- 到达lms-fe-b
- SolarTransformers
- dltmatlab代码-DLCconverterDLT:用于将数据从DeepLabCut格式转换为DLTdv工具或Argus格式的函数
- LoveCalculator
- Locate:iOS iBeacon定位器应用程序。 该应用程序搜索iBeacon UUID,并在测距显示屏上显示项目
- 行业文档-设计装置-一种与掘进机配套使用的快速锚杆支护平台.zip
- 数据库课程设计,数据库系统.zip
- JustMobyTest
- UTS_ML2019_Main:悉尼科技大学“机器学习”学习材料,2019年Spring
- C#-WPF实现抽屉效果SplitView-炫酷漂亮的侧边菜单效果+MD主题重绘原生控件的美观效果-源码Demo下载
- js-beatles-loops-lab-js-apply-000
- dltmatlab代码-Ro_PnL:这是使用Branch-and-Bound从线对应估计绝对相机姿态的Matlab代码
- kernelcompile:适用于任何发行版的稳定主线长期Linux内核的Python编译脚本
- 基于 Vue 和 mapbox-gl 的地理信息可视化组件库.zip