Android:从内容URI获取文件URI?

JMRboosties

在我的应用程序中,用户将选择一个由应用程序处理的音频文件。问题是,为了使该应用程序执行我希望它对音频文件执行的操作,我需要URI为文件格式。当我使用Android的本地音乐播放器浏览应用程序中的音频文件时,URI是内容URI,如下所示:

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的操作。

杰森·勒布朗

只需使用getContentResolver().openInputStream(uri)得到一个InputStream从URI。

http://developer.android.com/reference/android/content/ContentResolver.html#openInputStream(android.net.Uri)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章