我正在尝试使用asmack发送消息,我在log cat中收到这样的错误:
07-23 13:44:45.759: D/SMACK(20581): RCV (0): <message from='139@192.168.10.241' to='143@192.168.10.241/false' type='error' id='7DOua-233'><body>dgvvvcvcvhcbfbfvgchcbgbhgbhvnhbnvbvbhgbbbbhvbcnvbvbvbvvvcbvcbv hvvvbcvbbhnhjbnnvjbbnnnvnhbnbbbnnn</body><error code='500' type='wait'><resource-constraint xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/><text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>Your contact offline message queue is full. The message has been discarded.</text></error></message>
这是代码:
if(mConnection!=null)
{
Message msg = new Message(params[0], Message.Type.chat);
msg.setBody(params[1]);
try
{
System.out.println("sending..");
mConnection.sendPacket(msg);
System.out.println("sent!"+msg.getBody());
System.out.println("sent!"+msg.getTo());
flag=true;
}
catch(Exception e)
{
System.out.println("Exception:"+e);
}
}
如何在我自己的try catch块中捕获上面的log cat错误?在当前情况下,即使消息发送失败,它也会返回true。如何判断消息发送是否由于上述错误而失败。
答案 0 :(得分:2)
添加数据包侦听器并检查收到的数据包类型。如果出现错误,则表示您的邮件未送达。
答案 1 :(得分:-1)
在您的xmpp服务器中,转到离线消息设置并设置一个非常高的限制,用于存储1024 KB等离线消息,并检查始终存储消息,即使已达到最大大小。
希望这有效!