android media库中external的读取

Android学习之如何读取本地音乐以及图片 最近做音乐播放器读取本地音乐这一块。简单模仿网易云音乐的界面。 阅读详情
一、android是如何管理多媒体文件(音频、视频、图片)的信息。

 

通过DDMS,我们在/data/data/com.android.providers.media下找到数据库文件

  

 

  打开external.db文件进一步查看:在media表格下,可以看到文件路径(_data)和Uri的标示ID(_id)的对应关系。

  

 

二、URI与文件相互转换

 

   1.从URI获得文件路径

 

[java]  

string  myImageUrl = "content://media/external/images/media/***";  

     Uri uri = Uri.parse(myImageUrl);  

       

   

     String[] proj = { MediaStore.Images.Media.DATA };     

     Cursor actualimagecursor = this.ctx.managedQuery(uri,proj,null,null,null);    

     int actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);     

     actualimagecursor.moveToFirst();     

       

   

     String img_path = actualimagecursor.getString(actual_image_column_index);    

     File file = new File(img_path);  

     Uri fileUri = Uri.fromFile(file);  

 

2.由文件路径得到URI

 

[java]  

Uri mUri = Uri.parse("content://media/external/images/media");   

             Uri mImageUri = null;  

   

             Cursor cursor = managedQuery(  

                     MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null,  

                     null, MediaStore.Images.Media.DEFAULT_SORT_ORDER);  

             cursor.moveToFirst();  

   

             while (!cursor.isAfterLast()) {  

                 String data = cursor.getString(cursor  

                         .getColumnIndex(MediaStore.MediaColumns.DATA));  

                 if (picPath.equals(data)) {  

                     int ringtoneID = cursor.getInt(cursor  

                             .getColumnIndex(MediaStore.MediaColumns._ID));  

                     mImageUri = Uri.withAppendedPath(mUri, ""  

                             + ringtoneID);  www.2cto.com

                     break;  

                 }  

                 cursor.moveToNext();  

             }  

 


Android 存储进化:分区存储 Android系统会自动扫描外部存储空间,将媒体文件按类型添加到系统预定义的Images、Videos、Audiofiles、Downloadedfiles集合中。AndroidQ通过MediaStore.Images、MediaStore.Video、MediaStore.Audio、MediaStore.Downloads访问相对应共享目录文件资源。预定义集合所对应的目录如下表所示:|媒体类型|Uri|默认创建目录|允许创建目录| 阅读详情

相关推荐

一文搞懂Android 13媒体权限:READ_MEDIA_IMAGES和WRITE_EXTERNAL_STORAGE的区别与使用

本文深度解析Android 13中READ_MEDIA_IMAGES与WRITE_EXTERNAL_STORAGE权限的核心区别与使用场景。新的权限模型要求应用按需申请特定媒体类型访问权限,取代了过去粗放的存储访问方式。文章提供了从权限声明、动态请求到兼容性处理的完整实战指南,并推荐使用系统照片选择器(Photo Picker)作为更优的隐私友好方案,帮助开发者构建符合Android 13规范的精细化存储访问策略。

happy2的博客 1188

Android 14上应用自己导出的音频文件,其他应用通过MediaStore查找不到,如何让其他应用可以查找到自己导出的音频文件

Android 14上应用自己导出的音频文件,其他应用通过MediaStore查找不到,如何让其他应用可以查找到自己导出的音频文件

louise_tsc的博客 653

Android 13+ SD卡权限适配实战:从READ_MEDIA_IMAGES到WRITE_EXTERNAL_STORAGE

本文详细解析了Android 13及以上版本中存储权限模型的重大变更,特别是从READ_EXTERNAL_STORAGE到细粒度的READ_MEDIA_IMAGES等权限的适配策略。文章提供了从AndroidManifest配置、动态权限申请代码到兼容性处理的完整实战方案,帮助开发者解决App在Android 13+设备上无法读写SD卡和媒体文件的常见问题,确保应用符合新的隐私规范并稳定运行。

weixin_29291185的博客 369

Android 10,11 文件存储

一:Android 11 (API 30)中的存储机制更新: Android11(API 级别30)进一步增强了平台功能,为外部存储设备上的应用和用户数据提供了更好的保护。此版本引入了多项增强功能,例如,可主动选择启用的媒体原始文件路径访问机制、面向媒体的批量编辑操作,以及存储访问框架的界面更新。 此版本还改进了分区存储,以便开发者更轻松地迁移到此存储模型。如需了解详情,请参阅Android 存储用例和最佳做法指南,以及标题为Android 11 存储常见问题解答的 Medium 文章。 强制...

zw904448290的博客 1万+

Android 13存储权限适配指南:解决WRITE_EXTERNAL_STORAGE与READ_EXTERNAL_STORAGE失效问题

本文详细解析了Android 13存储权限的重大变更,重点解决WRITE_EXTERNAL_STORAGE与READ_EXTERNAL_STORAGE权限失效问题。通过新旧权限模型对比、兼容性适配方案及特殊场景处理,帮助开发者高效完成权限适配,确保应用在Android 13及以上版本的正常运行。

weixin_30839881的博客 493

Android存储权限终极梳理:从READ_EXTERNAL_STORAGE到MANAGE_EXTERNAL_STORAGE的演进之路

本文全面解析Android存储权限体系的演进历程,从基础权限到Android 10引入的分区存储(Scoped Storage)机制,再到Android 11的MANAGE_EXTERNAL_STORAGE特权。通过详细的技术分析和实战代码示例,帮助开发者高效适配新版存储模型,确保应用在隐私保护与功能完整性之间取得平衡。

yoga7的博客 769

android 13读取本机所有图片名和存储绝对路径,Java

【Android设置头像,手机拍照或从本地相册选取图片作为头像】像微信、QQ、微博等社交类的APP,通常都有设置头像的功能,设置头像通常有两种方式:1,让用户通过选择本地相册之类的图片库中已有的图像,裁剪后作为头像。Android设置头像,手机拍照或从本地相册选取图片作为头像_android 头像拍照_zhangphil的博客-优快云博客。Android图片添加文字水印并保存水印文字图片到指定文件_zhangphil的博客-优快云博客。

Zhang Phil 2111

Android 12 U盘文件读取权限异常:从/mnt/media_rw到/storage的路径转换实战

本文针对Android 12及以上版本中应用读取U盘文件时遇到的权限异常问题,提供了从`/mnt/media_rw`到`/storage`路径转换的实战解决方案。文章深入剖析了Scoped Storage等存储机制变化带来的影响,并给出了核心的双向路径转换代码、动态卷标处理方法以及适配多版本的最佳实践,帮助开发者高效解决U盘文件读取权限问题。

weixin_29234423的博客 482

Android初识Media类的EXTERNAL_CONTENT_URI和INTERNAL_CONTENT_URI

今天有个客户需求,要内置一个不可删除的视频。不可删除的话,不能在设备中删除,USB连接电脑也不能删除。那么直接放到system/media/下好了,这样对用户就完全不可见了,这样还不行,完全不可见,就失去了内置视频的意义,所以我们还要在视频播放器中显示出来,这就要修改播放器的源码,让播放器读取Internal的媒体文件即可。adb shell,查看如下目录/data/da...

weixin_34032779的博客 3197

Python | 处理CMIP6 NC数据,以tas为例

各位同学,一般在文章最后一章我们可能会做不同气候情景下变量的未来时空变化特征,类似上图。从cmip6下载的nc数据常需要转换格式、裁剪到研究区和重采样等,本期代码可以解决这类问题。

qq_48539301的博客 1384

手把手教你用RTL8306MB搭建小型网络交换机:从原理到实战

本文详细介绍了如何使用RTL8306MB交换芯片从零搭建小型网络交换机的全过程。内容涵盖芯片原理分析、核心硬件电路设计(包括电源、时钟、RMII接口连接要点)、驱动开发与SMI通信实现,以及从物理链路到交换功能的系统调试实战。重点解析了将MAC5配置为RMII PHY模式与CPU对接的关键步骤和常见错误,帮助嵌入式开发者深入理解网络交换原理并完成实践。

weixin_29274969的博客 192

android 12 /mnt/media_rw读取异常

usb读取

TAI_BAO的博客 4380

第4章 本地一键部署(新手首选)

本文介绍了OpenClaw的本地部署方法,特别适合新手用户。部署过程仅需执行一条命令,通过自动脚本完成安装和配置向导。安装完成后,用户可通过终端TUI或Web控制面板验证部署是否成功。文章还提供了常见问题的排查方法,包括端口占用、权限不足、APIKey无效和安装卡顿等情况。整个部署流程简单直观,无需手动修改配置文件,适合快速搭建使用。

eastyuxiao的专栏 194

android开发在android13中存储权限发生变化,READ_EXTERNAL_STORAGE,WRITE_EXTERNAL_STORAGE无法使用

原来的两个存储权限在android13中已经无法使用。

long1703的博客 5551

3、固定翼无人机模型解析

本文详细解析了固定翼无人机的动力学模型与纵向模型,涵盖位置、速度、角度及角速度的变化率方程,并介绍了力和力矩的计算方法以及气动系数的表达式。通过关键参数分析,探讨了速度、迎角和倾斜角对飞行性能的影响。文章还展示了模型在编队飞行和任务规划中的应用,并提出了参数优化与先进控制策略等优化思路,为无人机飞行控制系统设计提供了理论基础。

gaochao的博客 240

7 中望CAD二次开发-标注(一)(ZRX C++)

尺寸标注是CAD设计中最常用的功能之一,软件内置了很多标注功能,可以通过使用这些标注工具,对需要标注的长度、角度等一个个进行标注。但这显然效率很低,学习CAD二次开发,就是要把人从重复的劳动中解放出来,实现批量标注。本文介绍,如何通过二次开发进行标注。

cilvsuanna的博客 340

Android 13+(API 33+),READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 已被废弃,需使用更细化的媒体权限(如 READ_MEDIA_I

【代码】 Android 13+(API 33+),READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 已被废弃,需使用更细化的媒体权限(如 READ_MEDIA_I。

u013519290的博客 909

010、Zephyr RTOS开发环境搭建(Docker)

摘要 本文分享了使用Docker搭建Zephyr RTOS开发环境的实践经验。作者通过团队新人配置环境的真实案例,指出传统安装方式存在版本冲突、缓存污染等问题,而Docker方案能确保环境一致性。文章详细介绍了自定义Docker镜像的设计思路,重点解决工具链版本匹配、Python虚拟环境隔离等问题,将镜像体积从2GB优化到800MB。提供了从拉取镜像到点亮LED的完整工作流程,并总结了USB设备直通、文件权限、缓存问题等常见陷阱。还探讨了多阶段构建、CI集成等进阶用法,同时客观分析了Docker方案的局限性

m0_50546716的博客 81

Android 中 content://media/external/images/media/Y 转 file:///storage/sdcard0/Pictures/X.jpg:ContentRe

Android 开发中把 content://media/external/images/media/Y 转成 file:///storage/sdcard0/Pictures/X.jpg,核心是用 ContentResolver 查询 MediaStore.Images.Media.DATA 列拿到真实路径,Android 10+ 需兜底拷贝到缓存目录。文中给出可直接复制的查询代码、权限声明与真机验证步骤,并说明如何用 TaoToken 接入模型链路,详见官网 https://taotoken.net/?

weixin_42591413的博客 1140

手机相机Tuning专项调优(一):基础流程与图像主观评价标准建立实战解析

本篇为手机相机系统“Tuning专项调优”系列的开篇,深入剖析了当前手机相机Tuning的基本流程与图像主观评价标准的构建方法。结合实际工程经验与最新业界案例,详细介绍ISP调优和3A控制中涉及的主观评价标准,如锐度、色彩饱和度、噪声感知等,并提出一套可工程化落地的标准制定与评测实践体系,帮助工程师有效提升图像品质。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 1935

CDDT CST CDDT CSTTT

This is the second part of the SA8653 automotive CDDT configuration guide. It describes the matching rules and modification methods between CDDT and device‑tree DDTS. It explains CDT’s underlying logic and configuration in TZ, QNX and Android. It details C

qq_39257814的博客 1412

Android11 已有MANAGE_EXTERNAL_STORAGE 但还是没有WRITE_EXTERNAL_STORAGE权限

Android11 已有MANAGE_EXTERNAL_STORAGE 但还是没有WRITE_EXTERNAL_STORAGE权限 在Android 11中,新增了MANAGE_EXTERNAL_STORAGE权限,用于控制应用对外部存储的管理权限。但是,WRITE_EXTERNAL_STORAGE权限仍然没有被引入,这意...

weixin_30336075的博客 2465

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Android13关于获取外部存储文件的相关问题及解决方案记录

但是我们知道,从Android13 (API33) 开始,外部存储权限发生了变化,要想读取外部存储文件,使用原来的权限注册方式已经失效了。左图是系统自带的文件选择器,右图是我开发的文件选择器(我是以系统的选择器作为参照的,因此样子长得很像😄)。也就是说,如果开启了这个权限,就可以获取所有的文件了(包括媒体文件和非媒体文件),那么媒体文件的权限就算不申请也可以获得权限。

qq_45204138的博客 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

android 12 /mnt/media

----已替代android.permission.WRITE_MEDIA_STORAGE。storage下可读取,但/mnt/media_rw不可读取。看情况是否需要添加此处,否则media_rw权限不可读。安卓新版本适配是真谛烦 =。

xiaowang_lj的博客 568

AVProVideo绝对路径读取安卓内存视频地址

翻了好多文章都没写用绝对路径读取到视频文件的方法 然后看到Easy Movie Texture Video Texture 的使用方法的一篇文章说要设置一下读写权限 (顺便分享一下别人的文章https://blog.csdn.net/mansir123/article/details/78991250) 于是也试了一下Easy Movie Texture Video Texture的SDK确...

days123454的博客 7785
上一篇: 避免启动Activity时出现白色闪屏问题
下一篇: 已解决错误: ‘android.content.res.Resources$Theme android.content.Context.getTheme()‘ on a null object re
闲暇部落
博客等级 码龄12年 2777粉丝 215原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闲暇部落

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值