Java asmack-接收自定义XML消息||

Java asmack-接收自定义XML消息||,java,android,debugging,xmp,Java,Android,Debugging,Xmp,我花了一些时间在android设备中添加smack.providers,我的应用程序很好地使用了它。我添加了默认的iqProviders和extensionProviders,但也添加了自定义extensionProvider,如下所示: <extensionProvider> <elementName>players</elementName> <namespace>boxer:players</namespace> &l

我花了一些时间在android设备中添加smack.providers,我的应用程序很好地使用了它。我添加了默认的iqProviders和extensionProviders,但也添加了自定义extensionProvider,如下所示:

<extensionProvider>
  <elementName>players</elementName>
  <namespace>boxer:players</namespace>
  <className>company.games.boxer.PlayerListProvider</className>
</extensionProvider>

球员
拳击手:运动员
company.games.boxer.PlayerListProvider
我还要介绍PlayerListProvider类,它目前在那里只是为了看看它是否会被调用(它不会被调用)——当我知道它会被调用时,我会完全实现它,因此至少这部分功能是有效的:

import java.util.List;
import java.util.Map;

import org.jivesoftware.smack.packet.PacketExtension;
import org.jivesoftware.smackx.provider.EmbeddedExtensionProvider;

import android.util.Log;

@SuppressWarnings("deprecation")
class PlayerListProvider extends EmbeddedExtensionProvider {
  protected PacketExtension createReturnExtension(String currentElement, String currentNamespace, Map<String,String> attributeMap, List<? extends PacketExtension> content) {
    Log.w("***** AAAAAAAAAAAAAAAAAAAA *******", "0");
    return new XMLPlayerList();
  }

}



class XMLPlayerList implements PacketExtension {

  public String getElementName() {
    return "aaaaa";
  }

  public String getNamespace() {
    return "aaaaa";
  }

  public String toXML() {
    return "aaaaa";
  }

}
import java.util.List;
导入java.util.Map;
导入org.jivesoftware.smack.packet.PacketExtension;
导入org.jivesoftware.smackx.provider.EmbeddedExtensionProvider;
导入android.util.Log;
@抑制警告(“弃用”)
类PlayerListProvider扩展EmbeddedExtensionProvider{

protected PacketExtension createReturnExtension(String currentElement、String currentNamespace、Map attributeMap、List在阅读了这里的类似问题之后,我遇到了这个和这个()来实现自定义消息发送/接收

你是否考虑过使用而不是使用


如果您有兴趣尝试使用它来代替
EmbeddedExtensionProvider
,我们将对其进行更详细的解释。它可能并不完全是您想要的…(看起来需要更多的手动解析方法),但它可能会使您的
PlayerListProvider
类得到识别(通过扩展该类)

Hi.当然,我是这样做的,而不是通过.addExtensionProvider,我使用了smack.providers文件,它的作用实际上是相同的,只是XML文件格式。因此,这不是问题的解决方案,因为它不能解决我的问题,我也离解决我的问题不远了,而且很明显,您在生成答案方面没有投入太多精力。我用一个不同的、可能的答案编辑了我的帖子。只是想帮助…因为还没有其他人对此发表过想法。:)你是如何解决你的问题的?你能分享一下吗
<message to="eee@localhost" type="chat" id="9" from="admin@localhost">
  <body>
    &lt;players xmlns="boxer:players" command="playerlist"&gt;
      &lt;player&gt;test1&lt;/player&gt;
      &lt;player&gt;test2&lt;/player&gt;
    &lt;/players&gt;
  </body>
  <thread>3P0i00</thread>
</message>