J'ai ce code, presque non modifié parmi des exemples:
UserSearchManager usm = new UserSearchManager(conn); Form searchForm = usm.getSearchForm("search.myserver.com"); Form answerForm = searchForm.createAnswerForm(); answerForm.setAnswer("Username", true); answerForm.setAnswer("search", contact.getJid()); ReportedData data = usm.getSearchResults(answerForm, "search.myserver.com");
3 Réponses :
La réponse originale ci-dessous contient maintenant des informations anciennes et obsolètes. Depuis Asmack 0.8, il n'est plus nécessaire de configurer manuellement le responsable du fournisseur. Appelant Réponse originale forte> p> En fin de compte, le problème était global à tous les ASMACK. Il semble que ce soit un problème connu: le fichier Smack.Providers, généralement dans / META-INF Dossier dans les versions normales de Smack, ne peut pas être chargé dans Android, car son emballage de jar. Donc, tous les fournisseurs doivent être initialisés à la main, comme indiqué dans la réponse de Mike Ryan dans ce fil: http: //community.igniteraltime. org / message / 201866 # 201866 p> J'ai supprimé les trucs qui n'ont pas fonctionné pour moi, et c'est le résultat. P> smackandroid.init (contexte) code> car l'ASMACK README vous dit de faire, prend soin de toutes les initialisations nécessaires. P>
configure(ProviderManager.getInstance());
Le Javadoc de NeverearchManager explique comme suit:
Le RechercheRearchManager est une façade construite sur les services de recherche Jabber (JEP-055) pour permettre la recherche de référentiels sur un serveur Jabber. Cette implémentation permet la transparence de la mise en oeuvre de la recherche (dataforms ou pas de dataforms), mais permet à l'utilisateur de simplement utiliser le modèle de dataform pour les deux types de support. P> blockQuote>
xxx pré> p>