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.
- Cómo obtener la línea de tiempo de inicio del usuario con el SDK de Android de Twitter
- Conseguir 403 prohibido al usar Tejido de Twitter para obtener user_timeline
- La API de Twitter no acepta URL de devolución de llamada para la aplicación para Android
- Android Twitter no puede recuperar accestoken
- Cómo crear un botón de Twitter en Android?
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.
- ¿Cómo salir del navegador de aplicaciones de Twitter en Android?
- ¿Cómo puedo publicar en Twitter con Intent Action_send?
- Inicio de sesión de Twitter utilizando WebView
- Cookie de encabezado no válido cuando integra twitter en android
- La conexión de twitter falló
- Error al iniciar "com.twitter.android.PostActivity"
- Android twitter enviar seguir solicitud a un amigo
- Message - Sus credenciales no permiten el acceso a este recurso. Código - 220
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