一、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/...)学习相关推荐

  1. 文件路径 (/mnt/sdcard/...) 、Uri路径(content://media/external/...)

    一.URI 通用资源标志符(Universal Resource Identifier, 简称"URI"). Uri代表要操作的数据,Android上可用的每种资源 - 图像.视频 ...

  2. 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 ...

  3. Linux学习笔记-文件权限与路径

    Linux学习笔记-文件与目录 目前从电子信息科学与技术转到了计算机专业,因此想趁着大四比较闲的时候补一些计算机的知识.我想说:你好,生活[斜眼笑]!愿生活温柔以待!哈哈,这是我写的第一篇博客,谨以此 ...

  4. android ringtone获取uri,android – 如何通过文件路径从MediaStore获取Uri?

    通过了解歌曲的标题,您可以恢复存储在RingtonePreference中的铃声URI的方式(据我所知).然后你可以通过使用游标来获取存储的铃声_id来查询它,你可以用它构建一个URI: String ...

  5. Linux学习笔记 文件服务Vsftp详细介绍

    Linux学习笔记 文件服务Vsftp详细介绍 知识点: 1.FTP使用TCP连接和TCP端口 2.在进行通信时,FTP需要建立两个TCP连接: 一个用于控制信息,TCP端口号缺省为21 一个用于数据 ...

  6. Python语言编程学习:文件路径变量修改,利用os模块固定文件父路径,变换文件子路径实现代码

    Python语言编程学习:文件路径变量修改,利用os模块固定文件父路径,变换文件子路径实现代码 目录 文件路径变量修改,利用os模块固定文件父路径,变换文件子路径实现代码

  7. NDK学习笔记:一起来变萝莉音!FMOD学习总结(下)

    NDK学习笔记:一起来变萝莉音!FMOD学习总结(下) 一.创建自己的变音demo 上一节我已经能够在AndroidStudio上跑起了fmod的基础教程.还有疑问的同学可以重新阅读跟着来跑一次.这章 ...

  8. 机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记...

    机器学习实战(Machine Learning in Action)学习笔记----06.k-均值聚类算法(kMeans)学习笔记 关键字:k-均值.kMeans.聚类.非监督学习 作者:米仓山下 时 ...

  9. 【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 ...

  10. JavaScript学习笔记04【高级——DOM和事件的简单学习、BOM对象】

    w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...

最新文章

  1. Entity Framework学习三:查询、插入、更新和删除操作
  2. Arduino IDE 如何添加 ESP32 开发板?
  3. jvm gc停顿_在JVM中记录世界停顿
  4. excel中如何取消自动超链接?
  5. linux init 7,Linux 之 init命令
  6. 阅读笔记 火球UML大战需求分析4
  7. 【论文解读】ICLR2021 知识建模与信息抽取
  8. [iOS]UIButton内、外边距设置
  9. 【C语言】实现简易计算器
  10. 英特尔傲腾技术:部署更简单,内存提升游戏性能
  11. mysql导出txt数据_mysql导出和导入txt数据
  12. 基建管控系统_基建管控系统在电网建设中的应用
  13. Python使用Google多语言翻译Excel文档
  14. 怎么更改當前的USERENV(#39;LANG#39;)返回值 oracle
  15. 什么是Google Voice
  16. 黑马全套Java教程(二)
  17. 携手抗击疫情,雀巢大家庭在行动
  18. 海外媒体推广,企业如何在YouTube做好海外网红KOL营销?
  19. php+mysql网站开发全程实例 于荷云 pdf_《PHP 7 0+MySQL网站开发全程实例》于荷云著【摘要 书评 在线阅读】-苏宁易购图书...
  20. 【phpstudy】在windows上开启后访问php页面显示502

热门文章

  1. 教师不能错过的三款教学必备工具
  2. TextRank算法讲解与代码实现
  3. 多媒体计算机用什么音箱好,5款性价比高的电脑小音箱推荐(每一款音质都相当ok)...
  4. 梦三国解析服务器spl文件头失败解决,梦三国手游|深度解析“伪法师”张角:“不容忽视的战场杀器”...
  5. Reflection的getCallerClass使用
  6. ClassForName应用于工厂模式
  7. angularJS简介
  8. vhg电路是什么意思_显示装置和电力监测电路的制作方法
  9. Spring Cloud与Dubbo详细对比
  10. 出国旅行 Android软件,出国旅行必备实用app,你拥有几款