iniciar la aplicación de Facebook desde otra aplicación

Resuelto Aswan asked hace 55 años • 5 respuestas

¿Cómo puedo iniciar una aplicación de Facebook desde mi aplicación en Android?

Aswan avatar Jan 01 '70 08:01 Aswan
Aceptado

Al observar la última aplicación de Facebook (1.6), parece que tanto "facebook://" como "fb://" son protocolos registrados.

Facebook://

facebook:/chat
facebook:/events
facebook:/friends
facebook:/inbox
facebook:/info
facebook:/newsfeed
facebook:/places
facebook:/requests
facebook:/wall

pensión completa://

fb://root
fb://feed
fb://feed/{userID}
fb://profile
fb://profile/{userID}
fb://page/{id}
fb://group/{id}
fb://place/fw?pid={id}
fb://profile/{#user_id}/wall
fb://profile/{#user_id}/info
fb://profile/{#user_id}/photos
fb://profile/{#user_id}/mutualfriends
fb://profile/{#user_id}/friends
fb://profile/{#user_id}/fans
fb://search
fb://friends
fb://pages
fb://messaging
fb://messaging/{#user_id}
fb://online
fb://requests
fb://events
fb://places
fb://birthdays
fb://notes
fb://places
fb://groups
fb://notifications
fb://albums
fb://album/{%s}?owner={#%s}
fb://video/?href={href}
fb://post/{postid}?owner={uid}¹

Lo siento si me perdí algunos... solo jugué con un puñado de ellos en el emulador para ver si realmente funcionan; un montón de ellos harán que la aplicación de Facebook falle.

¹ donde postid está en el uid_postidformato, por ejemplo11204705797_10100412949637447

NPike avatar Jul 10 '2011 00:07 NPike

Para iniciar la actividad del iniciador predeterminada:

Intent intent = new Intent("android.intent.category.LAUNCHER");
intent.setClassName("com.facebook.katana", "com.facebook.katana.LoginActivity");
startActivity(intent);

Investigué un poco porque quería descubrir esto :). Encontré algunas formas de iniciar diferentes actividades fácilmente. Pero no puedo garantizar que esto funcione después de las actualizaciones de Facebook. Lo probé con mi aplicación de Facebook actual y funciona. Al menos lo probé con "adb shell" usando "am start...".

Básico es:

String uri = "facebook://facebook.com/inbox";
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
startActivity(intent);

la parte facebook.com no está marcada. incluso puedes escribir: "facebook://gugus.com/inbox" y tendrá el mismo efecto.

Cómo hacer esto en adb.

1. Start adb shell through console: "adb shell"
2. run: "am start -a android.intent.action.VIEW -d facebook://facebook.com/inbox"

esto iniciará la actividad de la bandeja de entrada. Aquí algunos Uris con ejemplos. Creo que hablan por sí solos lo que hacen.

facebook://facebook.com/inbox
facebook://facebook.com/info?user=544410940     (id of the user. "patrick.boos" won't work)
facebook://facebook.com/wall
facebook://facebook.com/wall?user=544410940   (will only show the info if you have added it as friend. otherwise redirects to another activity)
facebook://facebook.com/notifications
facebook://facebook.com/photos
facebook://facebook.com/album
facebook://facebook.com/photo
facebook://facebook.com/newsfeed

Es posible que haya parámetros adicionales que pueda proporcionar a algunos de esos uris, pero no tengo tiempo para revisar todo el código de esas actividades.

¿Cómo hice esto? echa un vistazo a apktool.

Patrick Boos avatar Nov 16 '2010 06:11 Patrick Boos