Как поделиться текстом и изображением на Facebook с помощью Intent
Как поделиться текстом и изображением на Facebook, я пишу церковное приложение, в котором я хочу позволить пользователю делиться текстом и изображением вместе с URL.
Я могу поделиться ссылкой на приложение в интернете, но не могу поделиться текстом и изображением, где я отсутствую ?
Мой код выглядит так:
Button btnFbSharing = (Button) findViewById(R.id.fbSharing);
btnFbSharing.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(android.content.Intent.EXTRA_TITLE, "Church Application");
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "https://play.google.com/store/apps/details?id=com.facebook.katana");
shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "A new world begin");
shareIntent.putExtra(android.content.Intent.EXTRA_STREAM, R.drawable.ic_launcher);
PackageManager pm = getApplicationContext().getPackageManager();
List<ResolveInfo> activityList = pm.queryIntentActivities(shareIntent, 0);
for (final ResolveInfo app : activityList) {
if ((app.activityInfo.name).contains("facebook")) {
final ActivityInfo activity = app.activityInfo;
final ComponentName name = new ComponentName(
activity.applicationInfo.packageName,
activity.name);
shareIntent.addCategory(Intent.CATEGORY_LAUNCHER);
shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
shareIntent.setComponent(name);
startActivity(shareIntent);
}
}
}
});
2 ответа:
Эй, я провел много исследований по этому вопросу, когда я задал тот же самый вопрос
В принципе это невозможно из приложения facebook, используя имя пакета " com.фейсбук.катана", поскольку он игнорирует дополнительный текст, когда изображение есть, см. Это для фактического Ошибка , но может иметь ссылки, когда изображение не существует. Очень раздражает, я знаю.
После долгих поисков я создал свою собственную активность с помощью Facebook sdk 3.14.1, который позволяет изображения и текст вот github Ссылка на демонстрационный проект дайте ему ход и дайте знать, если это поможет вам.
Используйте это для общего url-адреса в android через intent chooser... вы не делитесь текстами непосредственно на Facebook wallpost
b2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String urlToShare = "www.google.com"; Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); // intent.putExtra(Intent.EXTRA_SUBJECT, "Foo bar"); // NB: // has no effect! intent.putExtra(Intent.EXTRA_TEXT, urlToShare); // See if official Facebook app is found boolean facebookAppFound = false; List<ResolveInfo> matches = getPackageManager() .queryIntentActivities(intent, 0); for (ResolveInfo info : matches) { if (info.activityInfo.packageName.toLowerCase() .startsWith("com.facebook.katana")) { intent.setPackage(info.activityInfo.packageName); facebookAppFound = true; break; } } // As fallback, launch sharer.php in a browser if (!facebookAppFound) { String sharerUrl = "https://www.facebook.com/sharer/sharer.php?u=" + urlToShare; intent = new Intent(Intent.ACTION_VIEW, Uri .parse(sharerUrl)); } startActivity(intent); } });