मैंने एंड्रॉइड डिवाइस में smack.providers जोड़ने के लिए कुछ समय बिताया है, जो कि मेरे आवेदन द्वारा उठाया गया है ठीक है। मैं डिफ़ॉल्ट iqProviders और extensionProviders जोड़ दिया है, लेकिन मैं यह भी अपने कस्टम extensionProvider है, जो निम्नलिखित है जोड़ दिया है:asmack - कस्टम एक्सएमएल संदेश प्राप्त करना ||
<extensionProvider>
<elementName>players</elementName>
<namespace>boxer:players</namespace>
<className>company.games.boxer.PlayerListProvider</className>
</extensionProvider>
मुझे भी 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";
}
}
और मैं निम्न संदेश जब हो रही है मैं क्लाइंट एंड्रॉइड ऐप चलाता हूं:
<message to="[email protected]" type="chat" id="9" from="[email protected]">
<body>
<players xmlns="boxer:players" command="playerlist">
<player>test1</player>
<player>test2</player>
</players>
</body>
<thread>3P0i00</thread>
</message>
मेरा प्रश्न अब है, संदेश प्राप्त करने पर कॉल किया गया प्लेयरलिस्टप्रोवाइडर (एंबेडेड एक्स्टेंशनप्रोवाइडर) क्यों नहीं है। संदेश में टैग है और बॉक्सर का नामस्थान है: प्लेयर, जैसा कि मैंने smack.providers में निर्दिष्ट किया है।
किसी भी विचार?
आपने कैसे किया आपकी समस्या हल हो गई? क्या आप – Hunt