只是想分享一个动态文本字符串 + 应用程序的 URL。原生 Android 共享意图设置正确,并且与 Twitter、Gmail 等完美配合。但是,正如许多人猜测的那样,它不适用于 Facebook。显然是因为 Facebook 不接受该intent.EXTRA_TEXT
字段中的文本,只接受一个 URL。
好吧,我对你们所有人的问题是:有没有办法根据他们选择共享的方法来分支共享意图附加内容?例如,如果他们通过 gmail 或 Twitter 分享,请使用现有的String + URL
(所需选项)EXTRA_TEXT
,但如果他们选择通过 Facebook 分享,则仅使用 URL 作为EXTRA_TEXT
.
并不是真的想为这样一个内置在 Android 中的简单任务实现 Facebook Android SDK。
感谢您的时间和建议。
尝试过这样的事情,但它显然失败了,因为它只检查共享选项是否存在(当共享弹出时,而不是在他们单击共享方法之后),当他们选择一种方法时它没有响应。
String shareBody = "app string text " + act_txt + " more text! Get the app at http://www.appurl.com";
PackageManager pm = view.getContext().getPackageManager();
List<ResolveInfo> activityList = pm.queryIntentActivities(sharingIntent, 0);
for(final ResolveInfo app : activityList) {
Log.i(TAG, "app.actinfo.name: " + app.activityInfo.name);
//if((app.activityInfo.name).contains("facebook")) {
if("com.facebook.katana.ShareLinkActivity".equals(app.activityInfo.name)) {
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, "http://www.appurl.com");
startActivity(Intent.createChooser(sharingIntent, "Share idea"));
break;
} else {
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "app name");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
startActivity(Intent.createChooser(sharingIntent, "Share"));
break;
}
}