我有一个音频文件(.mp3)和一些与之相关的信息。我想与Facebook,电子邮件,短信/彩信等分享。
我所做的是:当用户点击共享按钮时,它会弹出可以处理此Intent的所有受支持应用程序的列表。但这并未显示Facebook和短信/彩信选项。
这是我的代码..
public void shareWithFriends(int resId)
{
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("audio/mp3");
share.putExtra(Intent.EXTRA_SUBJECT,"Ringtone File : "+ getResources().getResourceEntryName(resId)+".mp3");
share.putExtra(Intent.EXTRA_TEXT,"Ringtone File : "+getResources().getResourceEntryName(resId)+".mp3");
share.putExtra(Intent.EXTRA_STREAM,Uri.parse("android.resource://com.my.android.soundfiles/"+resId));
share.putExtra("sms_body","Ringtone File : "+ getResources().getResourceEntryName(resId)+".mp3");
startActivity(Intent.createChooser(share, "Share Sound File"));
}
以下是一些结果:
当我使用MIME类型audio/mp3
时,只会弹出电子邮件选项。没有Facebook和短信/彩信共享。
当我使用MIME类型*/*
时,会弹出电子邮件和短信选项。没有Facebook选项。
这里有趣的是,当我点击短信选项时,只显示文字。我没有看到任何MP3文件附件(同样的事情发生在 Whatsapp (因为我手机上安装了 Whatsapp )。但是,当我点击任何邮件应用程序时(例如,Gmail或Yahoo邮件)它显示我附带的MP3文件。
我哪里错了?
答案 0 :(得分:9)
Facebook没有选项,但您可以通过蓝牙共享电子邮件和彩信。这是我的代码。看看它是否对您有所帮助:
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("audio/*");
share.putExtra(Intent.EXTRA_STREAM,Uri.parse("file:///"+mypath));
startActivity(Intent.createChooser(share, "Share Sound File"));
break;
此处我的路径是SD card上声音文件的路径。
答案 1 :(得分:2)
您正在尝试通过不支持它的服务共享mp3。
应用程序未显示在受支持的mp3应用列表中,因为不支持。
答案 2 :(得分:1)
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("audio/*");
sharingIntent.putExtra(android.content.Intent.EXTRA_STREAM,
Uri.fromFile(new File("filepath")));
startActivity(Intent.createChooser(sharingIntent,"Share using"));
答案 3 :(得分:1)
File f=new File("full audio path");
Uri uri = Uri.parse("file://"+f.getAbsolutePath());
Intent share = new Intent(Intent.ACTION_SEND);
share.putExtra(Intent.EXTRA_STREAM, uri);
share.setType("audio/*");
share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
context.startActivity(Intent.createChooser(share, "Share audio File"));
答案 4 :(得分:0)
你试试这个。
final Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.putExtra("sms_body", "bod of sms");
sendIntent.setType("*/*");
sendIntent.setClassName("com.android.mms", "com.android.mms.ui.ComposeMessageActivity");
final File file1 = new File(Environment.getExternalStorageDirectory().getAbsolutePath(),"test.amr");
Uri uri = Uri.fromFile(file1);
Log.e("Path", "" + uri);
sendIntent.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(sendIntent, ""));
答案 5 :(得分:0)
使用以下代码,我可以通过意图分享音频。
String path = Environment.getExternalStorageDirectory()
.getAbsolutePath() + "/abc.mp3";
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("audio/*");
share.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///" + path));
startActivity(Intent.createChooser(share, "Share Sound File"));
答案 6 :(得分:0)
String sharePath = Environment.getExternalStorageDirectory().getPath()
+ "/Soundboard/Ringtones/custom_ringtone.ogg";
Uri uri = Uri.parse(sharePath);
Intent share = new Intent(Intent.ACTION_SEND);share.setType("audio/*");
share.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(share, "Share Sound File"));