当前位置: 首页 > news >正文

uniapp,Anroid10+版本如何保存图片并删除

Android 10系统开始 进一步增强了平台功能,为外部存储设备上的应用和用户数据提供了更好的保护。作为这项工作的一部分,平台引入了进一步的改进,以简化向分区存储的转换。
为了让用户更好地控制自己的文件,保护用户隐私数据,并限制文件混乱情况,Android 11在分区存储基础上限制了应用访问其他应用的文件。
简言之:分区存储,不允许内存随意删除,只允许删除app以内的文件
具体的问题描述:适配Android10+设备注意事项 - DCloud问答
那如何实现存储图片以及删除图片呢:
1、存储图片

		//预览时抓图并保存成图片文件---this.$refs.HCNet.NET_DVR_CapturePictureBlock为获取图片的方法,可根据实际情况替换NET_DVR_CapturePictureBlock() {// const filePath = plus.io.convertLocalFileSystemURL(`_doc/${fileName}`);var imagePath = plus.io.convertLocalFileSystemURL("_doc/" + new Date().getTime() + ".png")console.log('图片的存储路径---------------', imagePath)var dic = {"lRealHandle": this.lRealHandle,"imagePath": imagePath}this.$refs.HCNet.NET_DVR_CapturePictureBlock(dic, (res) => {// console.log("预览时抓图并保存成图片文件:" + JSON.stringify(res))uni.saveImageToPhotosAlbum({filePath: imagePath})})},

2、删除图片:

	//此处根据图片名称进行了图片筛选删除,可根据实际情况修改
readFile(historyData) {const folderPath = '_doc/';let startTime = new Date(historyData.taskStartTime).getTime(); // 起始时间戳let endTime = new Date(historyData.taskEndTime).getTime(); // 结束时间戳let aFileList = [];let list = []// that = thisplus.io.resolveLocalFileSystemURL(folderPath, //指定的目录(entry) => {var directoryReader = entry.createReader(); //获取读取目录对象directoryReader.readEntries((entries) => { //返回的是指定文件夹下的文件列表aFileList = entriesaFileList.forEach(i => {if (/\./.test(i.name)) {let filenameA = i.namelet dotIndex = filenameA.lastIndexOf('.'); // 获取最后一个点的索引let itemName = filenameA.slice(0, dotIndex);if (itemName >= startTime && itemName <= endTime) {this.delFile(i.name)}}})},(err) => {console.log("访问目录失败", err);});},(err) => {console.log("访问指定目录失败:" + err.message);});},delFile(fileName) {return new Promise((resolve, reject) => {let filePath = `_doc/${fileName}`plus.io.resolveLocalFileSystemURL(filePath, (entry) => {entry.remove(() => {// console.log('文件删除成功');resolve(); // 返回成功状态}, (error) => {console.error(`删除失败: ${error.code} - ${error.message}`);reject(error);});}, (error) => {console.error(`文件查找失败: ${error.code} - ${error.message}`);reject(error);});});},

另外,图片保存到本地,我实际在平板上看到的是白屏的图片,如果使用图片预览,就可以预览清楚了,预览代码:

function previewImage() {const imagePath = '/storage/emulated/0/Android/data/uni.UNICDD06A7/apps/__UNI__CDD06A7/doc/1752030774848.png';uni.previewImage({current: imagePath, // 当前显示图片的链接urls: [imagePath]   // 预览图片的数组,可以包含多张图片});
}// 调用预览图片函数
previewImage();


 

http://www.dtcms.com/a/270669.html

相关文章:

  • 缓存三大问题详解与工业级解决方案
  • 视频音频转换器V!P版(安卓)安装就解锁V!P!永久免费使用!
  • 【RK3568+PG2L50H开发板实验例程】FPGA部分 | DDR3 读写实验例程
  • 创客匠人:在 IP 变现浪潮中,坚守知识变现的本质
  • 飞算AI-idea强大的AI工具
  • 二分查找篇——在排序数组中查找元素的第一个和最后一个位置【LeetCode】
  • 如何把一个多行的RAS key放到环境变量中?
  • 最新全开源礼品代发系统源码/电商快递代发/一件代发系统
  • 红宝书单词学习笔记 list 26-50
  • 71、【OS】【Nuttx】【启动】启动函数分析
  • 股权结构解析
  • 首批 | 云轴科技ZStack加入施耐德电气技术本地化创新生态
  • 微算法科技从量子比特到多级系统,Qudits技术革新引领量子计算新时代
  • 从零开始学前端html篇2
  • Redis:分组与设备在 Redis 中缓存存储设计
  • K线训练关键代码
  • Laravel 动态生成 PDF:基于 KnpSnappy 实现多公司页眉页脚差异化配置
  • C++如何进行性能优化?
  • 安卓设备信息查看器 - 源码编译
  • PlantUML 在 IDEA 中文版中的安装与使用指南
  • Vim 编辑器常用操作详解(新手快速上手指南)
  • LKT4304稳定可靠高兼容性国产安全加密芯片
  • JAVA观察者模式demo【设计模式系列】
  • WebSocket实现多人实时在线聊天
  • 【TCP/IP】2. 计算机网络与因特网体系结构
  • 两张图片对比clip功能
  • 后端id设置long类型时,传到前端,超过19位最后两位为00
  • 解锁DevOps潜力:如何选择合适的CI/CD工作流工具
  • 【Linux | 网络】socket编程 - 使用UDP实现服务端向客户端提供简单的服务
  • python:ImportError: cannot import name ‘ParameterSource‘ from ‘click.core‘