iniciar la aplicación de Facebook desde otra aplicación
¿Cómo puedo iniciar una aplicación de Facebook desde mi aplicación en Android?
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_postid
formato, por ejemplo11204705797_10100412949637447
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.