当我使用默认音乐播放器作为意图时,从资产文件夹获取地址时,我遇到了一个很大的问题!这是我的代码:
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只会说:"找不到项目"我该怎么办?
第三方应用程序无法响应file:///android_asset
Uri
值,因为他们将尝试从他们的应用程序(而不是您的)中提取该资产,并且他们没有该资产。
您可以使用FileProvider
将资产复制到内部存储,并将其提供给第三方应用程序。或者,我有一个StreamProvider
,它做同样的事情,但直接从资产区域提供数据,避免了本地文件副本。