我想通过Facebook,Twitter,电子邮件和短信分享我的应用程序。我不想与使用共享按钮时显示的其他选项共享它。
我目前正在使用以下代码进行分享按钮:
sharebuton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String TEXT = "I shared the file " + " via MyApp";
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_TEXT, TEXT);
startActivity(Intent.createChooser(sendIntent, "Share the program:"));
}
});
使用此代码时,系统会向用户显示共享应用程序的其他选项,如Gmail,记事本,窥视,蓝牙等,以及上述四个选项。
是否可以过滤共享选项,以便只向用户显示四个选项(Facebook,Twitter,电子邮件和消息)?
答案 0 :(得分:1)
不确定您是否仍在寻找答案,但我最近遇到了我自己的解决方案,正是您正在尝试做的事情,但恰恰相反 - 我想创建一个用户可以共享的自定义应用程序列表与排除Facebook。您需要知道要排除/包含的应用程序的包名称。这是我的代码,它基本上列出了为处理ACTION_SEND命令而注册的可用软件包,然后您可以选择要显示的列表中的哪些项目。
List<Intent> targetedShareIntents = new ArrayList<Intent>();
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/jpeg");
List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(intent, 0);
if (!resInfo.isEmpty()) {
for (ResolveInfo resolveInfo : resInfo) {
String packageName = resolveInfo.activityInfo.packageName;
Intent targetedShareIntent = new Intent(android.content.Intent.ACTION_SEND);
targetedShareIntent.setType("image/jpeg");
targetedShareIntent.putExtra(Intent.EXTRA_TITLE, "Title string");
targetedShareIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject string");
if ("com.facebook.katana".equals(packageName) || "com.facebook.orca".equals(packageName)) {
// don't add Facebook or Facebook messenger app to list
continue;
} else {
targetedShareIntent.putExtra(Intent.EXTRA_TEXT, bodyStr);
}
targetedShareIntent.setPackage(packageName);
targetedShareIntents.add(targetedShareIntent);
}
Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(0), getString(R.string.results_share_title));
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[]{}));
startActivity(chooserIntent);
}
答案 1 :(得分:0)
我想这可能会以某种方式帮助你... Sending email from android app但我仍然会接受Commansware What is the purpose of using Intent.createChooser() in StartActivity() while sending email in Android的评论
答案 2 :(得分:0)
试试这个。
如果您想通过Facebook,Twitter,电子邮件和短信分享应用程序。
为此,您需要制作一个layout
,您必须在其中提供您想要分享的选项。您可以为这些设置buttons
。
然后点击button
然后您需要处理每个按钮的操作,例如email
您需要打开email
应用,而facebook
则需要打开facebook
1}}和其他人一样。