我想使用 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链路:
共享音频文件
拿起一个音频文件 安卓
关于您拥有的代码:
-
将
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
中。有关详细信息,请参阅文档。