Просто хочу поделиться динамической текстовой строкой + URL-адресом приложения. Собственное намерение использовать Android настроено правильно и отлично работает с Twitter, Gmail и т.д. Но, как многие догадываются, это не работает с Facebook. Явно, потому что Facebook не принимает текст в поле intent.EXTRA_TEXT
, только один URL.
Ну, мой вопрос к y'all: есть ли способ отделить дополнительные намерения долевого участия в зависимости от того, какой метод они предпочитают использовать? например, если они делятся через gmail или Twitter, используйте существующий String + URL
(желаемый вариант) EXTRA_TEXT
, но если они решили делиться через Facebook, используйте только URL как EXTRA_TEXT
.
Не очень хочется реализовать Android Android SDK для такой простой задачи, которая встроена в Android.
Цените свое время и советы.
Пробовал что-то вроде этого, но он, очевидно, терпит неудачу, потому что он проверяет, существует ли опция совместного доступа (когда общий доступ всплывает, а не после нажатия на метод общего доступа), он не отвечает, когда выбирает метод.
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;
}
}