Android: 文件获取 URI 来自内容 URI?
在我的应用程序中,用户必须选择音频文件,然后由应用程序处理。 问题是,为了使应用程序执行我希望它与音频文件进行的操作,我需要 URI 它处于文件格式。 当我使用本土音乐播放器时 Android 要搜索应用程序中的音频文件, URI - 这是内容 URI, 这看起来像这样:
但是,使用流行的文件应用程序 Astro, 我得到以下内容:
后者对我来说更易于访问,但是,当然,我希望应用程序具有与选择用户的音频文件的功能,而不管它用于查看其集合的程序。 所以,我的问题是是否有一种转换样式的方法
URI 在
URI? 否则,你建议我如何解决这个问题? 以下是调用选择工具供参考的代码:
我用内容做了以下操作 URI:
然后做点什么 FileInputStream 使用此文件。
content://media/external/audio/media/710
但是,使用流行的文件应用程序 Astro, 我得到以下内容:
file:///sdcard/media/audio/ringtones/GetupGetOut.mp3
后者对我来说更易于访问,但是,当然,我希望应用程序具有与选择用户的音频文件的功能,而不管它用于查看其集合的程序。 所以,我的问题是是否有一种转换样式的方法
content://
URI 在
file://
URI? 否则,你建议我如何解决这个问题? 以下是调用选择工具供参考的代码:
Intent ringIntent = new Intent//;
ringIntent.setType/"audio/mp3"/;
ringIntent.setAction/Intent.ACTION_GET_CONTENT/;
ringIntent.addCategory/Intent.CATEGORY_OPENABLE/;
startActivityForResult/Intent.createChooser/ringIntent, "Select Ringtone"/, SELECT_RINGTONE/;
我用内容做了以下操作 URI:
m_ringerPath = m_ringtoneUri.getPath//;
File file = new File/m_ringerPath/;
然后做点什么 FileInputStream 使用此文件。
没有找到相关结果
已邀请:
6 个回复
涵秋
赞同来自:
, 获得
的 URI.
http://developer.android.com/r ... %2529
/
郭文康
赞同来自:
您可以使用内容识别器来实现方式
的
URI:
江南孤鹜
赞同来自:
, 您可以使用此方法获取文件夹或文件的绝对路径。
在 Android 19 或更高
.
你可以检查每个部分 Uri 用途 println. 返回我的卡的值 SD 下面列出了设备的主存储器。 如果在内存中,您可以访问和删除文件,但我不能
从卡中删除文件
SD 通过这种方法,只读或打开
使用此绝对路径的D图像。 如果您找到了使用此方法删除的解决方案,请分享它。
SD卡
主记忆
如果你想得到 Uri 从
收到路径后,使用
知食
赞同来自:
, 不是一个好的解决方案。 在 HTC Desire 被...统治 4.2.2 你可以得到 NULL 作为查询结果。
为什么不使用 ContentResolver?
郭文康
赞同来自:
&
. 已经回答的方法的尝试导致我决定,主要涵盖光标的转换 null cases & 的
content:/ /
to
file
://
要转换文件, read&write 收到的文件 uri
要获取文件名,它将覆盖光标案例 null
类型有一个很好的转换选项。 mime 在文件扩展名中
游标接收文件名
君笑尘
赞同来自:
计划检查 uri:
在上面的答案中,我转换了视频 uri 在一系列字节中 , 但这与问题无关,
我刚刚复制了我的完整代码来显示使用
和
, 因为他们两个同样在我的代码中工作。
我使用了一个变量的上下文,我的片段是平等的 getActivity//, 和行动,只是 ActivityName.this
//in 分段
// 在行动中