Я пытаюсь восстановить заархивированные сообщения из чата, но у меня есть проблемы с этим
Я пытаюсь восстановить заархивированные сообщения из чата, но у меня есть проблемы с этим. Я использую smack 4.2.0 с openfire.
для извлечения заархивированных сообщений. Я использую следующее
public void getMessages(){
try {
MamManager mamManager = MamManager.getInstanceFor(mConnection);
boolean isSupported = mamManager.isSupportedByServer(); //this is False
if (isSupported) {
MamManager.MamQueryResult mamQueryResult = mamManager.queryArchive(500);
List<Forwarded> forwardedMessages = mamQueryResult.forwardedMessages;
Forwarded d = forwardedMessages.get(0);
}
} catch (Exception e) {
e.printStackTrace();
}
}
с предыдущим кодом. У меня проблемы, поскольку isSupported всегда ложно .. почему это ложно? Что я делаю, чтобы сделать это правдой и позволить мне запомнить сообщения?
Я также использовал следующий код:
public MamManager.MamQueryResult getArchivedMessages(String jid, int maxResults) {
MamManager mamManager = MamManager.getInstanceFor(mConnection);
try {
DataForm form = new DataForm(DataForm.Type.submit);
FormField field = new FormField(FormField.FORM_TYPE);
field.setType(FormField.Type.hidden);
field.addValue(MamElements.NAMESPACE);
form.addField(field);
FormField formField = new FormField("with");
formField.addValue(jid);
form.addField(formField);
// "" empty string for before
RSMSet rsmSet = new RSMSet(maxResults, "", RSMSet.PageDirection.before);
MamManager.MamQueryResult mamQueryResult = mamManager.page(form, rsmSet);
Log.d("testr", mamQueryResult.toString());
return mamQueryResult;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
это тоже не работает
Как я могу получить заархивированные сообщения?