2011-07-26 10 views
6

Ho fatto una breve panoramica sul sito Web xmpp.org e ho letto tutte le informazioni relative all'archiviazione dei messaggi (protocollo XEP-0136). Dopo aver letto tutto il documento, non riesco ancora ad ottenere il modo esatto per avviare l'implementazione di queste cose nella mia applicazione Android. Chiunque qui può aiutarmi, come possiamo implementare l'accesso all'archivio dei messaggi in mano al cliente. Sto usando la libreria smack per questo nella mia applicazione.Come accedere ai messaggi di archivio nell'applicazione Android dal server xmpp

+0

Probabilmente si desidera utilizzare XEP-0313 in questi giorni e non XEP-0136. – Flow

risposta

2

Innanzitutto, assicurarsi che il server implementa XEP-0136. Molti no.

Successivamente, ti consigliamo di creare la tua sottoclasse di IQ. Vedi OfflineMessageRequest per un esempio. Hai bisogno di getter e setter per tutti i sottoelementi del protocollo di archiviazione.

Penultimo, registra il tuo gestore di IQ con ProviderManager.addIQProvider.

Infine, scrivere una classe controller che invia il QI, attende i risultati ed elabora la semantica del protocollo. Vedere OfflineMessageManager per un esempio XEP-0013 che è simile a quello che si desidera.

+0

davvero grazie Joe .. la tua risposta è davvero molto utile per me, e già implementiamo XEP-0136 di conseguenza sul nostro server. Ora proverò ad implementare l'accesso all'archiviazione dei messaggi come mi suggerisci dal lato client nella mia applicazione Android. Se puoi farmi riferimento a qualsiasi link o fornirmi codice snipt anche da dove otterrò la logica esatta per implementarlo nel mio codice, quindi è molto positivo per me. Sto cercando positivamente una risposta rapida e positiva dalla tua parte ... ancora una volta grazie per aver risposto. – sumeet

+0

ciao Joe, sto provando anche il tuo suggerimento, ma sto ancora affrontando problemi difficili nell'esecuzione esatta. Per favore puoi condividere frammenti di codice con me. sto guardando con speranza, per favore aiutatemi. – sumeet

+0

@sumeet - Prova a guardare questa fonte poiché è un esempio abbastanza semplice http://fisheye.igniterealtime.org/browse/smack/trunk/source/org/jivesoftware/smackx/search?r=7071&r=9227&r=11613. A seconda di quanto complessa sarà l'analisi della stanza nel tuo provider, potresti anche voler utilizzare EmbeddedExtensionProvider http://fisheye.igniterealtime.org/browse/smack/trunk/source/org/jivesoftware/smackx/provider/EmbeddedExtensionProvider.java ? hb = true – Robin