当我使用默认音乐播放器作为意图时,我从资产文件夹获取地址时遇到了一个非常大的问题! 这是我的代码:
Uri path = Uri.parse("file:///android_asset/file.mp3");
String newPath = path.toString();
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
File file = new File(newPath);
intent.setDataAndType(Uri.fromFile(file), "audio/*");
startActivity(intent);
应用程序在我的设备上工作正常但是当我想运行意图时,一个TOAST只是说: “无法找到项目” 我该怎么办?
答案 0 :(得分:1)
第三方应用无法回复file:///android_asset
Uri
个值,因为他们会尝试从他们的应用中提取该资产,而不是您的应用,并且他们没有该资产
您可以将资产复制到内部存储,并将其提供给第三方应用using FileProvider
。或者,I have a StreamProvider
执行相同的操作,但直接从资产区域提供数据,避免本地文件复制。