Откройте страницу в Facebook, Twitter и приложении Google Plus из другого приложения - Android
Я работаю над приложением, где мне необходимо интегрировать социальные функции в разные социальные сети: Facebook, Twitter, Google +.
В настоящее время в Facebook и Twitter я узнал, есть ли у пользователя собственное приложение, и если он это сделает, я открою его и покажу ему свою страницу поклонников.
Для Twitter я использую следующий код:
try {
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("twitter://user?screen_name=[user_name]"));
startActivity(intent);
}catch (Exception e) {
startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse("https://twitter.com/#!/[user_name]")));
}
А для Facebook следующий код:
try{
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://profile/" + PROFILE_FACEBOOK_APP_ID));
startActivity(intent);
}catch(Exception e){
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.facebook.com/UserNamePage")));
}
Теперь я хочу сделать то же самое для Google+. Я видел, что я могу перейти на страницу своего поклонника со следующим Url https://plus.google.com/MY_PAGE_ID/
, но он все время спрашивает меня, хочу ли я открыть его с помощью приложения Google+ или с браузером, и я хочу, чтобы он автоматически открыл его с помощью приложения, без запроса пользователя.
Есть ли простой способ сделать это?
Спасибо.
Ответы
Ответ 1
Найдено решение:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setClassName("com.google.android.apps.plus",
"com.google.android.apps.plus.phone.UrlGatewayActivity");
intent.putExtra("customAppUri", "FAN_PAGE_ID");
startActivity(intent);
Ответ 2
Я думаю, что это вполне безопасно, потому что нам не нужно указывать компонент, просто имя пакета google + app:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://plus.google.com/[Google+ID]/"));
intent.setPackage("com.google.android.apps.plus"); // don't open the browser, make sure it opens in Google+ app
startActivity(intent);
Ответ 3
Неизвестно, если google plus нуждается в другой информации в Intent, но в качестве общего решения для Android вы можете явно установить цель. Вам понадобится имя пакета google +.
Дополнительная информация здесь: http://developer.android.com/reference/android/content/Intent.html#setPackage%28java.lang.String%29
Например:
Intent.setPackage("com.google.android.apps.plus"); //Don't know the exact package name