我正在使用Asmack库在Android应用程序上使用XMPP,服务器发送自定义Stanza
<notification xmlns="jabber:client" from="admin@api.pp.gs" to="1eef368606cb459b847809a0430bfa1f@api.pp.gs/iMac-de-Thomas" id="1457247499">
<body>lol</body>
</notification>
我希望能够收听这些数据包,我尝试使用PacketExtensionProvider但没有成功。这是我收听数据包的代码:
xmppConnection.addPacketListener(new PacketListener()
{
@Override
public void processPacket(Packet packet)
{
Log.i("K:", "cool " + packet.getClass().toString());
}
}, new MyPaquetFilter());
MyPaquetFilter返回的地方总是为了测试目的。
我应该如何使用 PacketManager , PacketExtension 来获取自定义广告?
答案 0 :(得分:0)
为了能够接收自定义数据包,您需要首先创建Provider, either an IQProvider or an PacketExtensionProvider,然后使用ProviderManager注册该提供程序,以便在接收数据包时考虑进行解析。
您没有向我们展示您的自定义PacketExtensionProvider,也没有向您展示如何使用ProviderManager注册它。而且就绝对精确而言,如果您使用PacketExtensionProvider,则需要将自定义扩展名notification
包装在message
元素中。