#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… Любая помощь?