共享音频wav文件

时间:2018-04-23 09:59:06

标签: android android-intent

我想在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链接:

Sharing an audio file

Picking up an audio file android

1 个答案:

答案 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