XMPP 交付收据 XEP-0184 与 ASMACK
Posted
技术标签:
【中文标题】XMPP 交付收据 XEP-0184 与 ASMACK【英文标题】:XMPP Delivery Receipts XEP-0184 with ASMACK 【发布时间】:2013-08-02 00:24:17 【问题描述】:我想使用 Asmack 为每条收到的消息发送回执,但代码如下:
DeliveryReceiptManager.getInstanceFor(connection).setAutoReceiptsEnabled(true);
结果:
08-02 02:19:30.669: E/androidRuntime(32597): java.lang.NullPointerException 08-02 02:19:30.669: E/AndroidRuntime(32597): at org.jivesoftware.smackx.receipts.DeliveryReceiptManager.(DeliveryReceiptManager.java:62) 08-02 02:19:30.669: E/AndroidRuntime(32597): at org.jivesoftware.smackx.receipts.DeliveryReceiptManager.getInstanceFor(DeliveryReceiptManager.java:81)
确定连接对象不为空。 我按照这个页面来达到这一点: http://bamboo.igniterealtime.org/browse/SMACK-TRUNK-59/commit
http://www.java2s.com/Open-Source/Android-Open-Source-App/Utility/yaxim/org/yaxim/androidclient/service/SmackableImp.java.htm
【问题讨论】:
您找到解决方案了吗?我面临同样的问题。获取空指针异常 @AkhileshSk 看下面,在评论中我回复说我放弃了,并做出了自己的“接收确认”,其他人也是如此,所以似乎仍未解决。 请问您能告诉我您是如何处理收货确认的吗? 【参考方案1】:在上述代码之前,你是否在连接对象上调用了connect?
【讨论】:
是的,我只是放弃了,并以我的“自己的方式”实现了 id。但是,如果有人知道解决方案,也许它会对那里的其他人有所帮助。 我也以自己的方式做到了。细粒度控制更容易,我将它用于其他功能【参考方案2】:你可以在打电话之前试试
<i>Class.forName("org.jivesoftware.smackx.ServiceDiscoveryManager");</i>
【讨论】:
以上是关于XMPP 交付收据 XEP-0184 与 ASMACK的主要内容,如果未能解决你的问题,请参考以下文章
OpenFire 或 XMPP 协议是不是支持消息通知(待处理、已交付、已读取),如 BBM(Blackberry Messenger)