Ich bin eine Messaging-Anwendung mit dem XMPP-Protokoll und Openfire-Server auf Android-Plattform implementieren. Ich muss speichern und laden meine eigene Vcard und andere Benutzer vcard. Im Moment habe ich es geschafft, meine vCard auf dem Server zu behalten und kann sie wieder laden. Das Problem ist mit den anderen Benutzern Vcards, Server immer zurück XMPPError: Feature-not-implementiert - Abbrechen.Load Vcards mit Smack (Android) in Openfire Server
Ich benutze diese Bibliotheken:
compile 'org.igniterealtime.smack:smack-android:4.1.2-SNAPSHOT'
compile 'org.igniterealtime.smack:smack-tcp:4.1.2-SNAPSHOT'
compile 'org.igniterealtime.smack:smack-extensions:4.1.2-SNAPSHOT'
Zeigen Sie den Code:
meine eigene Vcard speichern (Work in Ordnung).
VCardManager vCardManager = VCardManager.getInstanceFor(connection);
VCard vCard;
vCard = vCardManager.loadVCard();
vCard.setNickName("User name");
URL urldefault = new URL("Avatar URL");
InputStream stream = urldefault.openStream();
byte[] avatar1 = readBytes(stream);
vCard.setAvatar(avatar1, "avatar1/jpg");
vCard.setEmailHome("user email");
vCard.setPhoneHome("mobile", "888888888");
vCardManager.saveVCard(vCard);
laden mein eigenes Vcard (Adaequat)
VCard vCard = null;
VCardManager vCardManager = VCardManager.getInstanceFor(connection);
vCard = vCardManager.loadVCard();
Das Problem hier ist. Anderen Benutzer laden Vcard:
VCardManager vCardManager = VCardManager.getInstanceFor(connection);
boolean isSupported = vCardManager.isSupported(user);
if (isSupported) // return true
vCard = vCardManager.loadVCard(user);
Der Benutzername zum Laden von Vcard ist korrekt.
Irgendwelche Ideen?
Vielen Dank im Voraus.
hoffe Du siehst das, es ist ein älteres Post, aber ich habe genau das gleiche Problem. Aber die jid, die ich laden möchte, ist [email protected], ohne die Smack-Erweiterung. Hast du irgendeine Idee, warum es nicht funktioniert? – Opiatefuchs
mmm Ich löste mein Problem mit der jid des Benutzers ohne die/Smack. Welche Version verwenden Sie in Ihrer Anwendung? –
danke für die Antwort ... Ich benutze Smack 4.1.6 API, aber gestern habe ich einige Fehlerberichte gelesen und scheint, dass es Server abhängig ist. Mein Jid ist korrekt, also könnte das nicht das Problem sein. Eine weitere Frage, Ihre Verbindung, sind Sie gerade mit Ihrer jid angemeldet oder muss ich einige Änderungen an Connection vornehmen, bevor ich die vcard eines anderen Benutzers anrufe? – Opiatefuchs