Wdrażam aplikację do przesyłania wiadomości z protokołem XMPP i serwerem Openfire na platformie Android. Potrzebuję zapisać i załadować własną kartę Vcard i innych użytkowników vcard. W tej chwili udało mi się zachować vCard na serwerze i mogę go ponownie załadować. Problem jest z innymi użytkownikami Vcard, serwer zawsze zwraca XMPPError: feature-not-applied - cancel.Załaduj VCards z Smack (Android) w Openfire Server
używam tej biblioteki:
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'
pokaż kod:
uratować moje własne pliku vCard (fine work).
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);
Załaduj własne pliku vCard (fine work)
VCard vCard = null;
VCardManager vCardManager = VCardManager.getInstanceFor(connection);
vCard = vCardManager.loadVCard();
Problemem jest tutaj. Załaduj inny Vkartę użytkownik:
VCardManager vCardManager = VCardManager.getInstanceFor(connection);
boolean isSupported = vCardManager.isSupported(user);
if (isSupported) // return true
vCard = vCardManager.loadVCard(user);
Nazwa użytkownika załadować vCard jest prawidłowe.
Wszelkie pomysły?
Z góry dziękuję.
nadzieja Widzisz to, jest to starszy post, ale mam dokładnie ten sam problem. Ale jid, który próbuję wczytać, to [email protected], bez rozszerzenia Smack. Czy masz jakiś pomysł, dlaczego to nie działa? – Opiatefuchs
mmm Rozwiązałem swój problem z jidem użytkownika bez/Smack. Jakiej wersji używasz w swojej aplikacji? –
dzięki za odpowiedź ... Używam API Smack 4.1.6, ale wczoraj przeczytałem kilka raportów o błędach i wydaje mi się, że zależy to od serwera. Mój jid jest właściwy, więc to nie może być problem. Jeszcze jedno pytanie, Twoje połączenie, czy jesteś po prostu zalogowany przez Twój jid, czy też muszę dokonać pewnych zmian w Połączeniu przed wywołaniem vcard innego użytkownika? – Opiatefuchs