我想在Android中分享音频文件,但没有找到任何可行的解决方案。
在我的应用程序中,应用程序每次都会在应用程序目录中记录并保存名为audio_1.wav的音频文件,然后提供共享选项。因此,它始终共享具有相同名称的文件(audio_1.wav)。
还检查它是否正确创建文件。 我尝试使用以下代码共享音频文件;
File f = new File(sharePath);
Uri uri = Uri.parse(f.getAbsolutePath());
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("audio/*");
share.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(share, "Share Sound File"));
但在分享和选择任何应用时,它会显示 无法附加文件 。
也用于牛轧糖设备的FileProvider类,但它也没有用。 检查多个SO链接:
答案 0 :(得分:2)
关于您拥有的代码:
将Uri uri = Uri.parse(f.getAbsolutePath());
替换为Uri uri = Uri.fromFile(f);
,以获得有效的Uri
使用audio/wav
而非audio/*
作为MIME类型
您的代码将在Android 7.0+上以FileUriExposedException
崩溃。使用FileProvider
,在元数据XML资源中使用<external-path>
,并将FLAG_GRANT_READ_URI_PERMISSION
标记添加到Intent
。有关详情,请参阅the documentation。