小编典典

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

all

在我的应用程序中,用户将选择应用程序然后处理的音频文件。问题是,为了让应用程序执行我希望它对音频文件执行的操作,我需要 URI
为文件格式。当我使用Android的原生音乐播放器浏览app中的音频文件时,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 的东西。


阅读 172

收藏
2022-08-17

共1个答案

小编典典

只需用于从 URIgetContentResolver().openInputStream(uri)获取。InputStream

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

2022-08-17