Facebook SDK pour Android - set ID de l'Application par programmation
J'ai un natif de l'application pour Android qui doit se connecter à un autre Facebook app (Application différente ID) basé sur une application paramètre qui peut être modifié au moment de l'exécution.
Imaginer une application peut être configuré pour pointer vers DEV, TEST, ou PROD. Lorsqu'il est pointé vers DEV FB ID de l'Application doit être "1". Lorsqu'il est pointé pour TESTER le FB ID de l'Application doit être "2". etc.
Le problème est le UiLifecycleHelper de l'Facebook SDK lit automatiquement les "com.facebook.sdk.Identificateur applicationid" de la AndroidManifest.xml au cours de la onCreate de la phase. Il ne semble pas être un moyen de définir par programmation.
Est-il possible d'utiliser UiLifecycleHelper et point à un autre ID de l'application lors de l'exécution ou dois-je revenir à gestion manuelle de la Session?
OriginalL'auteur Matt Accola | 2013-02-25
Vous devez vous connecter pour publier un commentaire.
Bonjour à tous je sais que la réponse ci-dessus est juste pour
older sdk version
, mais dansfacebook sdk 4
il n'y a pas deSession
classeVous pouvez le faire simplement en utilisant cette seule ligne de code:
Merci!
OriginalL'auteur Hardy
Ici ce que j'ai utilisé pour définir l'id de l'application programatcally
Je ne peux pas obtenir que cela fonctionne. si la session.getState().equals(SessionState.CREATED_TOKEN_LOADED) est sautées
Comment est-ce utilisé en conjonction avec UIHelper?
OriginalL'auteur Ravi Kumar
J'ai décidé de la fourche à la facebook-android-sdk projet sur GitHub et faire les changements nécessaires. J'ai soumis une demande d'extraction avec mes changements si quelqu'un est intéressé, https://github.com/facebook/facebook-android-sdk/pull/294.
OriginalL'auteur Matt Accola
Oui, vous pouvez le configurer par programmation. Utiliser les Sessions$Builder classe qui vous permet de créer une session sans avoir à utiliser l'un des les constructeurs privés.
- Je vérifier pour voir si j'ai une session valide avant d'invoquer le UiLifecycleHelper via le rappel. J'imagine que ce n'est pas aussi élégant comme une coutume fourche version, mais il maintient notre arrêt pour la maintenance.
OriginalL'auteur mhradek
Je pense qu'il y a un moyen plus simple pour ce faire, il suffit d'appeler la méthode statique setApplicationId
com.facebook.Settings.setApplicationId(facebookID);
Et vous êtes bon pour aller. Pas besoin de créer une session manuellement avec le Constructeur et la définir comme la session active!
Les détails de la Faille:
La facebookID vous définissez dans les paramètres de la classe sera utilisée par
getMetadataApplicationId
méthode decom.facebook.internal.Utility
Qui sera utilisé par tous les appels à créer une Session:
Acclamations.
getMetadataApplicationId
est appelée uniquement si l'application id = null, cela signifie que vous ne pouvez pas vous mettre à jour l'id de l'application si vous en avez déjà un.OriginalL'auteur MAB
ne pouvez-vous pas simplement à la fourchette le SDK et ajouter ces changements par vous-même ?
OriginalL'auteur outlying