Lancer une application Facebook à partir d'une autre application

Comment puis-je lancer une application Facebook depuis mon application sur Android?

  • Reliure de données Android avec adaptateur personnalisé
  • Android HttpUrlConnection: Post Multipart
  • Gestion de l'erreur réseau avec rétrofit observable
  • Arrêter le gestionnaire après que le segment a été détruit
  • Comment tester la classe d'application avec Robolectric?
  • State_activated on pre Honeycomb Devices
  • 4 Solutions collect form web for “Lancer une application Facebook à partir d'une autre application”

    Pour commencer simplement l'Activité de lancement par défaut:

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

    J'ai fait des recherches parce que je voulais le découvrir :). J'ai trouvé quelques façons de démarrer facilement différentes activités. Mais je ne peux pas garantir que cela fonctionne après les mises à niveau de Facebook. Je l'ai testé avec mon application Facebook actuelle et ça marche. Au moins, je l'ai testé avec "shell adb" en utilisant "am start …..".

    Basic est:

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

    La partie facebook.com n'est pas cochée. Vous pouvez même taper: "facebook: //gugus.com/inbox" ayant le même effet.

    Comment faire cela dans adb.

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

    Cela démarrera l'activité de la boîte de réception. Voici quelques exemples de Uris. Je pense qu'ils parlent d'eux-mêmes ce qu'ils font.

     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 

    Il peut y avoir des paramètres supplémentaires que vous pouvez donner à certains de ces uris, mais je n'ai pas le temps d'examiner tout le code de ces activités.

    Comment ai-je fait cela? Vérifiez apktool.

    En regardant le dernier Facebook apk (1.6), il semble que "facebook: //" et "fb: //" sont des protocoles enregistrés.

    Facebook://

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

    Fb: //

     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}¹ 

    Désolé si j'ai raté certains … seulement joué avec une poignée d'entre eux dans l'émulateur pour voir s'ils fonctionnent réellement – un tas d'entre eux provoquera l'application de Facebook.

    ¹ où postid est dans le format uid_postid , par exemple 11204705797_10100412949637447

    Si quelqu'un veut ouvrir directement une photo

     public Intent getOpenFacebookIntent(String pId) { try { activity.getPackageManager().getPackageInfo("com.facebook.katana", 0); return new Intent(Intent.ACTION_VIEW, Uri.parse("facebook:/photos?album=0&photo=" + pId + "&user=" + ownerId)); } catch (Exception e) { return new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/")); } } startActivity(getOpenFacebookIntent(pid)); 

    ownerId est l' id Facebook de l'utilisateur qui a téléchargé cette image et pid est PhotoId

    Prendre plaisir :))

    Le lancement d'une autre application à partir de votre application dans Android ne peut être effectué que si l'action Intent vous tire des correspondances avec le filtre intention d'une autre application que vous souhaitez lancer.

    Comme l'a démontré @patrick, téléchargez facebook.apk vers l'émulateur et essayez de l'exécuter via la commande shell AdB. Ça marche bien …

    Pass Intent filtre et données en Uri

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.