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.
- Twitter4j => AndroidRuntime (446): java.lang.NoClassDefFoundError: twitter4j.http.AccessToken
- Callback para identificar el problema mientras se carga UserTimeline usando TweetTimelineListAdapter
- Android twitter4j - ¿Cómo compartir la imagen remota?
- ListView setOnItemClickListener no desencadena cuando un elemento tiene un vínculo en ello
- ¿Por qué el método getOAuthAccessToken siempre dispara la excepción en la api de twitter4j?
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.
- Abrir perfil de usuario de aplicaciones de Twitter desde la aplicación de Android
- UnknownHostException al acceder a api.twitter.com
- ¿Cómo ingresar a twitter usando Oauth desde mi aplicación Android?
- Comprueba si el usuario ha accedido a twitter
- Uso de las credenciales de Twitter de AccountManager para crear Twitter4J AccessToken
- ClassNotFoundException: twitter4j.conf.PropertyConfigurationFactory: Android
- Detectar Twitter enviar Android
- Cómo aprender qué versión de la aplicación instalada mediante programación en android
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
- Borrar texto de EditText después de agregar la implementación onTextChanged
- Android: Enviar una matriz de bytes a través de HTTP POST