Автономное сообщение с использованием smack в Android

#android

#Android

Вопрос:

Я могу создать небольшое приложение для чата, используя smack api. однако я не могу получать автономные сообщения, используя класс offlineMessageManager в smack api.Оно просто выдает исключение nullpointerexception, когда я предполагал вызвать метод getMessageCount в первой строке кода, который я вставил сюда.

             DiscoverInfo info = ServiceDiscoveryManager.getInstanceFor(connection).discoverInfo(null,namespace);
            Form extendedInfo = Form.getFormFrom(info);
            if (extendedInfo != null) {
                String value = extendedInfo.getField("number_of_messages").getValues().next();
                return Integer.parseInt(value);
            }
            }

            return 0;
  

Ответ №1:

У меня та же проблема, которую вы описали.

Я получил исходный код проекта aSmack и создаю свою собственную библиотеку.

Исправление этой конкретной проблемы заключается в вызове

Менеджер ServiceDiscoveryManager = новый ServiceDiscoveryManager (подключение);

после того, как вы вошли в систему. Кажется, в какой-то момент они пропустили инициализацию этого класса.

Дайте мне знать, если у вас возникнут другие проблемы после этого, я получил ClassCastException, но я могу вам помочь, если у вас это получилось.

-f4

Комментарии:

1. привет, я получаю ту же проблему, с которой вы столкнулись, можете ли вы помочь мне, как ее решить, потому что не знаете, когда инициализировать этот менеджер после входа в систему или до>. Я буду рад, если получу вашу помощь.

2. Вам просто нужно поместить строку ServiceDiscoveryManager manager = new ServiceDiscoveryManager (подключение); Сразу после вызова метода «login».

3. привет, спасибо за ваш ответ, но я уже делал это раньше, сразу после входа в систему, но в logcat говорится, что «функция не реализована (501)», не знаю об этом. а ты?. Я использую asmack-issue15.jar

4. Понятия не имею : (, но я использую репозиторий aSmack Git для получения их исходного кода github.com/rtreffer/asmack

5. @fr4gus год и чуть позже…. Я получаю исключение classcast… Любая помощь?