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 
  • Cómo compartir una aplicación de Android con facebook y twitter que está en esta aplicación
  • Android envía mensajes directos de Twitter a través de la intención
  • Android - Fabric.io Twitter Imagen / imagen del perfil REST API
  • Message - Sus credenciales no permiten el acceso a este recurso. Código - 220
  • Salir o cambiar cuentas usando Parse Twitter / Facebook Authentication
  • Twitter4J búsqueda de la consulta de Android no devuelve todos los tweets
  • La integración de twitter en la aplicación para Android
  • Desarrollo de Aplicaciones de Twitter para Android y uso de TextView y Linkify
  • ¿Cómo publicar un tweet utilizando la aplicación oficial de Twitter con la intención y, a continuación, volver a su aplicación?
  • ¿Cómo obtener la lista de amigos de twitter con autenticación social en android?
  • Faltan credenciales de autenticación de Twitter4j
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.