是否可以在android webview中使用外部存储目录上的文件?

时间:2017-07-07 17:14:22

标签: android file webview android-external-storage

我有一个播放mp3的混合应用程序,但我不想在资源文件夹中设置所有mp3,我希望用户选择他/她喜欢下载的mp3。

所以问题是......我可以在appview数据文件夹中使用以前在webview中下载的mp3吗?

文件中的内容:///android_assets/index.html:

<html><body>
<audio src="file:///Android/data/com.packagename/previouslydownloaded.mp3">
</body></html>

非常感谢。

1 个答案:

答案 0 :(得分:0)

由于Android Lollipop可以在任何地方使用文件,因为WebView已经获得了对content://方案的全面支持。较旧的Android版本也可以使用(例如,MediaPlayer获得了Uri支持,可以在API 14中播放)。只需创建一个ContentProvider并直接在网页中引用相关内容uris。

<html><body>
<audio src="content://com.example.authority/file/path.mp3">
</body></html>

来自辅助外部存储的两个文件(只能通过Storage Access Framework访问)和通过FileProvider或类似内容公开的应用私有文件都可以通过content://访问。

请注意,编写ContentProviders是一项有点棘手的业务,您可能希望查看以下问题及其所有答案:Is it possible to use content:// as a source for an <audio> element in a WebView