Abrir página en Facebook, Twitter y Google Plus desde otra aplicación – Android

Estoy trabajando en una aplicación donde necesito integrar la funcionalidad social de las diferentes redes sociales: Facebook, Twitter, Google+.

Por ahora, en Facebook y Twitter soy reconocido si el usuario tiene una aplicación nativa y si lo hace, lo estoy abriendo y mostrarle mi página de fans.

Para Twitter utilizo el siguiente código:

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]"))); } 

Y para Facebook el siguiente código:

 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"))); } 

Ahora quiero hacer lo mismo con Google+. Vi que puedo navegar a mi página de fans con la siguiente URL https://plus.google.com/MY_PAGE_ID/ , pero sigue preguntándome si quiero abrirla con la aplicación de Google+ o con el navegador y quiero que Él lo abrirá con la aplicación automáticamente, sin preguntar al usuario.

¿Hay una manera simple de hacer esto? Gracias.

Encontré una solución:

 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); 

Creo que esto es bastante seguro, porque no necesitamos especificar el componente, solo el nombre del paquete 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); 

Desconocido si google plus necesita alguna otra información en el intento, pero como solución general de Android puede establecer explícitamente el objetivo. Necesitará el nombre del paquete de google +.

Más información aquí: http://developer.android.com/reference/android/content/Intent.html#setPackage%28java.lang.String%29

Por ejemplo:

 Intent.setPackage("com.google.android.apps.plus"); //Don't know the exact package name 
  • Abrir perfil de usuario de aplicaciones de Twitter desde la aplicación de Android
  • Android lanza la intención de Twitter
  • Publicar texto diferente en facebook y twitter utilizando las intenciones de Android
  • Uso de la biblioteca de Twitter4j para Android
  • ¿Cómo tweet de la aplicación de Android?
  • Problema en la devolución de llamada en Twitter en Android
  • Cómo recuperar el nombre de un usuario de Twitter usando Twitter 4j
  • Oauth_callback en Android
  • Error de autenticación de Parse.com: No se puede responder a ninguno de estos desafíos: {oauth = www-authenticate: OAuth realm = "https://api.twitter.com"}
  • Error al obtener el método de token de solicitud POST debe tener un cuerpo de solicitud
  • ¿Salir de la cuenta de Twitter usando JTwitter?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.