Ich habe eine native Android-App, die auf der Grundlage einer App-Einstellung, die zur Laufzeit geändert werden kann, eine Verbindung zu einer anderen Facebook-App (unterschiedliche Anwendungs-ID) herstellen muss.
Stellen Sie sich vor, die App kann so eingestellt werden, dass sie auf DEV, TEST oder PROD zeigt. Wenn auf DEV verwiesen wird, sollte die FB Application ID "1" sein. Wenn auf TEST verwiesen wird, sollte die FB-Anwendungs-ID "2" sein. usw.
Das Problem ist, dass der UiLifecycleHelper vom Facebook-SDK während der onCreate-Phase automatisch die "com.facebook.sdk.ApplicationId" aus der AndroidManifest.xml liest. Es scheint keinen Weg zu geben, dies programmatisch zu setzen.
Ist es möglich, UiLifecycleHelper zu verwenden und zur Laufzeit auf eine andere Anwendungs-ID zu zeigen oder muss ich auf die manuelle Verwaltung der Sitzung zurückgreifen?
Ich habe beschlossen, das facebook-android-sdk-Projekt auf GitHub auszuweiten und die notwendigen Änderungen vorzunehmen. Ich habe eine Pull-Anfrage mit meinen Änderungen eingereicht, wenn jemand interessiert ist, Ссылка .
Hier, was ich verwendet habe, um die Anwendungs-ID programmatisch zu setzen
%Vor% Ich denke, es gibt einen einfacheren Weg, dies zu tun, rufen Sie einfach die statische Methode setApplicationId com.facebook.Settings.setApplicationId(facebookID);
Und du bist gut zu gehen. Keine Notwendigkeit, eine Sitzung manuell mit dem Builder zu erstellen und sie als aktive Sitzung festzulegen!
Details des Fehlers:
Die von Ihnen in der Einstellungsklasse festgelegte facebookID wird von getMetadataApplicationId
methode von com.facebook.internal.Utility
Dies wird wiederum von allen Anrufen verwendet, um eine Sitzung zu erstellen:
%Vor%Prost.
Tags und Links android facebook-android-sdk