我想让我的Android应用程序的用户在fb,twitter上发布一些数据并将其通过电子邮件发送给某人.我正在使用Intent.ACTION_SEND.我可以添加电子邮件主题并添加测试作为Intent.EXTRA_TEXT.但我希望将不同的文本发送给不同的应用程序.就像要发送到Twitter的文本一样短,要发送到Facebook的文本将有链接和镜头描述,并且ein电子邮件具有所有内容.我怎样才能实现这样的功能?最多我可以让facebook和twitter采用相同的文字,但不同于电子邮件中的内容.
我使用以下代码从我的应用选择器中排除Facebook应用:
List<Intent> targetedShareIntents = new ArrayList<Intent>();
Intent intent = new Intent(android.content.Intent.ACTION_SEND);
intent.setType("image/*");
List<ResolveInfo> resInfo = getActivity().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/*");
targetedShareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "tooter.nl");
if (!TextUtils.equals(packageName, "com.facebook.katana")) {
targetedShareIntent.putExtra(android.content.Intent.EXTRA_TEXT, st);
targetedShareIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
targetedShareIntent.setPackage(packageName);
targetedShareIntents.add(targetedShareIntent);
}
}
Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(0), "Select app to share");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[targetedShareIntents.size()]));
startActivity(chooserIntent);
}
Run Code Online (Sandbox Code Playgroud)
我使用代码时删除了Facebook应用程序.但令人遗憾的是,甚至Twitter应用程序也被从应用程序选择器中删除,其他不必要的应用程序如"Android系统"列在选择器上.我该怎么办 ?这段代码有什么缺失或错误吗?