2011-07-26 2 views
6

Я сделал краткий обзор на веб-сайте xmpp.org и прочитал все вещи, связанные с архивированием сообщений (протокол XEP-0136). После прочтения всего документа, я все равно не получаю точного способа начать реализацию этого приложения в своем приложении для Android. Любой может помочь мне, как мы можем реализовать доступ к архиву сообщений в руке клиента. Я использую библиотеку smack для этого в своем приложении.Как мы можем получить доступ к сообщениям архива в приложении android с сервера xmpp

+0

Возможно, вы захотите использовать XEP-0313 в наши дни, а не XEP-0136. – Flow

ответ

2

Во-первых, убедитесь, что ваш сервер реализует XEP-0136. Многие этого не делают.

Далее вы захотите создать свой собственный подкласс IQ. См. Пример OfflineMessageRequest. Вам нужны геттеры и сеттеры для всех подэлементов архивного протокола.

Внимательно зарегистрируйте обработчик IQ с помощью ProviderManager.addIQProvider.

И наконец, напишите класс контроллера, который отправляет IQ, ждет результатов и обрабатывает семантику протокола. См. OfflineMessageManager для примера XEP-0013, который похож на то, что вы хотите.

+0

действительно спасибо Джо .. ваш ответ действительно очень полезен для меня, и мы уже внедряем XEP-0136 соответственно на нашем сервере. Теперь я попытаюсь реализовать доступ к архивированию сообщений, поскольку вы предлагаете мне на стороне клиента в приложении для Android. Если вы можете сослаться на любую ссылку или предоставить мне код snipt также, откуда я получу точный способ логики для его реализации в моем коде, так что это очень полезно для меня. Я смотрю позитивно для быстрого и позитивного ответа с вашей стороны ... еще раз спасибо за ответ. – sumeet

+0

привет Джо, я тоже стараюсь в соответствии с вашим предложением, но все же я сталкиваюсь с трудными проблемами в точной реализации. Пожалуйста, вы можете поделиться с ним небольшим фрагментом кода. Я надеюсь, пожалуйста, помогите мне. – sumeet

+0

@sumeet - попробуйте посмотреть на этот источник, так как это довольно простой пример http://fisheye.igniterealtime.org/browse/smack/trunk/source/org/jivesoftware/smackx/search?r=7071&r=9227&r=11613. В зависимости от того, насколько сложным будет ваш синтаксический анализ строфы у вашего провайдера, вы также можете использовать EmbeddedExtensionProvider http://fisheye.igniterealtime.org/browse/smack/trunk/source/org/jivesoftware/smackx/provider/EmbeddedExtensionProvider.java ? hb = true – Robin