android - 如何使用正确的文件名进行Intent.ACTION_SEND?

标签 android audio android-intent share

我需要共享音频(音乐)文件,但是当我使用以下代码时,却得到了具有不同名称的文件,这不好。因为它是音乐文件,所以我需要保留所有属性,例如艺术家,文件的标题和名称。有什么办法吗?

        final String filePath = "/storage/emulated/0/Music/music.mp3";
        final Intent intentShareFile = new Intent(Intent.ACTION_SEND);
        intentShareFile.setType("audio/*");
        intentShareFile.putExtra(Intent.EXTRA_STREAM, Uri.parse(filePath));
        context.startActivity(Intent.createChooser(intentShareFile,"Share"));

我正在使用WhatsApp进行测试。

最佳答案

试试这个:

 packageName = getIntent().getStringExtra("topPackageName");
 String audioName = arrAudio.get(position).getAudioFileName();
                File audioFile = new File(Environment.getExternalStorageDirectory() + "/EmoticApp/AudioFile/" + audioName);

                Uri audioUri = Uri.fromFile(audioFile);
                Intent audioIntent = new Intent(Intent.ACTION_SEND);
                audioIntent.setType("audio/*");
                audioIntent.putExtra(Intent.EXTRA_STREAM, audioUri);
                audioIntent.setPackage(packageName);
                startActivity(audioIntent);

关于android - 如何使用正确的文件名进行Intent.ACTION_SEND?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34699018/

相关文章:

ios - audioQueue 中的定时事件

python - 计算 wav 文件和录制声音的频谱图(音量归一化)

android - 使用 Intent 获取蓝牙设置连接和配对屏幕?

node.js - 在nodejs中重定向未打开playstore

c# - 如何在C#中更改Windows Media Player的默认语言设置?

android - 从 Android 应用程序打开 native 浏览器

android - 在 Android 中初始化游戏客户端

android - OSMDroid 为 CompassOverlay 设置点击

android - 如何以编程方式获取android cpu温度

java - Android 应用程序的自定义字体