Android学习笔记——文件路径(/mnt/sdcard/...)、Uri(content://media/external/...)学习
一、URI
通用资源标志符(Universal Resource Identifier, 简称"URI")。
Uri代表要操作的数据,Android上可用的每种资源 - 图像、视频片段等都可以用Uri来表示。
URI一般由三部分组成:
访问资源的命名机制。
存放资源的主机名。
资源自身的名称,由路径表示。
Android的Uri由以下三部分组成: "content://"、数据的路径、标示ID(可选)
举些例子,如:
所有联系人的Uri: content://contacts/people
某个联系人的Uri: content://contacts/people/5
所有图片Uri: content://media/external
某个图片的Uri:content://media/external/images/media/4
二、内部保存
首先我们来看一下android是如何管理多媒体文件(音频、视频、图片)的信息。通过DDMS,我们在/data/data/com.android.providers.media下找到数据库文件
打开external.db文件进一步查看:在media表格下,可以看到文件路径(_data)和Uri的标示ID(_id)的对应关系。
三、相互转换
1.从URI获得文件路径
1 string myImageUrl = "content://media/external/images/media/***";2 Uri uri = Uri.parse(myImageUrl);3 4 5 String[] proj = { MediaStore.Images.Media.DATA }; 6 Cursor actualimagecursor = this.ctx.managedQuery(uri,proj,null,null,null); 7 int actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 8 actualimagecursor.moveToFirst(); 9 10 11 String img_path = actualimagecursor.getString(actual_image_column_index); 12 File file = new File(img_path); 13 Uri fileUri = Uri.fromFile(file);
2.由文件路径得到URI
1 Uri mUri = Uri.parse("content://media/external/images/media"); 2 Uri mImageUri = null;3 4 Cursor cursor = managedQuery(5 MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null,6 null, MediaStore.Images.Media.DEFAULT_SORT_ORDER);7 cursor.moveToFirst();8 9 while (!cursor.isAfterLast()) { 10 String data = cursor.getString(cursor 11 .getColumnIndex(MediaStore.MediaColumns.DATA)); 12 if (picPath.equals(data)) { 13 int ringtoneID = cursor.getInt(cursor 14 .getColumnIndex(MediaStore.MediaColumns._ID)); 15 mImageUri = Uri.withAppendedPath(mUri, "" 16 + ringtoneID); 17 break; 18 } 19 cursor.moveToNext(); 20 }
————————————————
如果你觉得本人的文章对你有所帮助,客官慢走请赏瓶水喝
Android学习笔记——文件路径(/mnt/sdcard/...)、Uri(content://media/external/...)学习相关推荐
- 文件路径 (/mnt/sdcard/...) 、Uri路径(content://media/external/...)
一.URI 通用资源标志符(Universal Resource Identifier, 简称"URI"). Uri代表要操作的数据,Android上可用的每种资源 - 图像.视频 ...
- android中转换content://media/external/images/media/539163为/storage/emulated/0/DCIM/Camera/IMG_20160807_
在上传照片时遇到上传路径异常:content://media/external/images/media/539163 转成:/storage/emulated/0/DCIM/Camera/IMG_2 ...
- Linux学习笔记-文件权限与路径
Linux学习笔记-文件与目录 目前从电子信息科学与技术转到了计算机专业,因此想趁着大四比较闲的时候补一些计算机的知识.我想说:你好,生活[斜眼笑]!愿生活温柔以待!哈哈,这是我写的第一篇博客,谨以此 ...
- android ringtone获取uri,android – 如何通过文件路径从MediaStore获取Uri?
通过了解歌曲的标题,您可以恢复存储在RingtonePreference中的铃声URI的方式(据我所知).然后你可以通过使用游标来获取存储的铃声_id来查询它,你可以用它构建一个URI: String ...
- Linux学习笔记 文件服务Vsftp详细介绍
Linux学习笔记 文件服务Vsftp详细介绍 知识点: 1.FTP使用TCP连接和TCP端口 2.在进行通信时,FTP需要建立两个TCP连接: 一个用于控制信息,TCP端口号缺省为21 一个用于数据 ...
- Python语言编程学习:文件路径变量修改,利用os模块固定文件父路径,变换文件子路径实现代码
Python语言编程学习:文件路径变量修改,利用os模块固定文件父路径,变换文件子路径实现代码 目录 文件路径变量修改,利用os模块固定文件父路径,变换文件子路径实现代码
- NDK学习笔记:一起来变萝莉音!FMOD学习总结(下)
NDK学习笔记:一起来变萝莉音!FMOD学习总结(下) 一.创建自己的变音demo 上一节我已经能够在AndroidStudio上跑起了fmod的基础教程.还有疑问的同学可以重新阅读跟着来跑一次.这章 ...
- 机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记...
机器学习实战(Machine Learning in Action)学习笔记----06.k-均值聚类算法(kMeans)学习笔记 关键字:k-均值.kMeans.聚类.非监督学习 作者:米仓山下 时 ...
- 【vn.py学习笔记(二)】vn.py底层接口 学习笔记
[vn.py学习笔记(二)]vn.py底层接口 学习笔记 1 CTP API的工作原理 1.1 CTP介绍 1.2 API功能介绍 1.3 CTP API文件 1.4 API 通用规则 2 CTP A ...
- JavaScript学习笔记04【高级——DOM和事件的简单学习、BOM对象】
w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...
最新文章
- Entity Framework学习三:查询、插入、更新和删除操作
- Arduino IDE 如何添加 ESP32 开发板?
- jvm gc停顿_在JVM中记录世界停顿
- excel中如何取消自动超链接?
- linux init 7,Linux 之 init命令
- 阅读笔记 火球UML大战需求分析4
- 【论文解读】ICLR2021 知识建模与信息抽取
- [iOS]UIButton内、外边距设置
- 【C语言】实现简易计算器
- 英特尔傲腾技术:部署更简单,内存提升游戏性能
- mysql导出txt数据_mysql导出和导入txt数据
- 基建管控系统_基建管控系统在电网建设中的应用
- Python使用Google多语言翻译Excel文档
- 怎么更改當前的USERENV(#39;LANG#39;)返回值 oracle
- 什么是Google Voice
- 黑马全套Java教程(二)
- 携手抗击疫情,雀巢大家庭在行动
- 海外媒体推广,企业如何在YouTube做好海外网红KOL营销?
- php+mysql网站开发全程实例 于荷云 pdf_《PHP 7 0+MySQL网站开发全程实例》于荷云著【摘要 书评 在线阅读】-苏宁易购图书...
- 【phpstudy】在windows上开启后访问php页面显示502
热门文章
- 教师不能错过的三款教学必备工具
- TextRank算法讲解与代码实现
- 多媒体计算机用什么音箱好,5款性价比高的电脑小音箱推荐(每一款音质都相当ok)...
- 梦三国解析服务器spl文件头失败解决,梦三国手游|深度解析“伪法师”张角:“不容忽视的战场杀器”...
- Reflection的getCallerClass使用
- ClassForName应用于工厂模式
- angularJS简介
- vhg电路是什么意思_显示装置和电力监测电路的制作方法
- Spring Cloud与Dubbo详细对比
- 出国旅行 Android软件,出国旅行必备实用app,你拥有几款