【发布时间】:2015-07-22 11:51:43
【问题描述】:
我一直在使用以下代码分享到 facebook 和任何其他应用程序:
private void initShareIntent(String type, String title, String link) {
boolean found = false;
Intent share = new Intent(android.content.Intent.ACTION_SEND);
share.setType(Constants.MIMETYPE_TEXT_PLAIN);
List<ResolveInfo> resInfo = getContext().getPackageManager().queryIntentActivities(share, 0);
if (!resInfo.isEmpty()) {
for (ResolveInfo info : resInfo) {
if (info.activityInfo.packageName.toLowerCase().contains(type) ||
info.activityInfo.name.toLowerCase().contains(type)) {
if (title != null && link != null) {
share.putExtra(Intent.EXTRA_SUBJECT, unescapeTitle(title));
share.putExtra(Intent.EXTRA_TEXT, link.replace(Constants.HTTP_SCHEME, Constants.HTTPS_SCHEME));
share.setPackage(info.activityInfo.packageName);
}
found = true;
break;
}
}
if (!found)
return;
getContext().startActivity(share);
}
}
我提供单词 facebook 作为类型变量。在最长的时间内,代码运行良好并且正在打开 facebook 共享对话框。
但是,现在,相同的代码会打开 Messenger 来启动共享。有没有办法强制它打开facebook而不是Messenger?
【问题讨论】:
-
使用此代码它将始终打开 facebook 应用程序 - if (info.activityInfo.packageName.toLowerCase().startsWith("com.facebook.katana")) { intent.setPackage(info.activityInfo.包裹名字); facebookAppFound = true;休息; }
-
@Flash 感谢它的工作原理!
-
很高兴它帮助...你可以删除你的 que。
标签: android facebook android-intent share