मैं एंड्रॉइड ऐप के भीतर चैट फीचर के लिए स्मैक लाइब्रेरी v4.1.0 (एस्मैक नहीं) का उपयोग कर रहा हूं। मैं काम करने के लिए निम्न दो सुविधा प्राप्त करने के लिए प्रतीत नहीं कर सकते हैं:एंड्रॉइड - स्मैक उपस्थिति और "टाइपिंग" विशेषताएं काम नहीं कर रही हैं
- उपयोगकर्ता उपस्थिति (ऑनलाइन, अंतिम बार देखा गया)
- चैट संदेश स्थिति (भेजा गया, वितरित, पढ़ें)
उपयोगकर्ता उपस्थिति के लिए , मैं निम्नलिखित कोड का उपयोग करता हूं जो हमेशा null
देता है।
Presence userPresence = roster.getPresence(toUser);
System.out.println("*** User status: " + userPresence.getStatus());
if (userPresence.getMode() == Presence.Mode.available || userPresence.getMode() == Presence.Mode.chat) {
lblIsTyping.setText("Online");
} else {
lblIsTyping.setText("Offline");
}
संदेश स्थिति के लिए, मैं निम्नलिखित कोड का उपयोग करें:
private class MessageListenerImpl implements MessageListener, ChatStateListener {
@Override
public void processMessage(Chat chat, Message message) {
processMessageCore(message);
}
@Override
public void stateChanged(Chat chat, ChatState chatState) {
System.out.println("*** chat: " + chat.toString());
if (ChatState.composing.equals(chatState)) {
lblIsTyping.setText("typing...");
System.out.println("Chat State: " + chat.getParticipant() + " is typing..");
}
}
@Override
public void processMessage(Message message) {
processMessageCore(message);
}
}
और के रूप में इसका इस्तेमाल करते हैं:
ChatManager.getInstanceFor(HCSmackService.getInstance().getConnection()).createChat(toUser, mThreadID, new MessageListenerImpl());
लेकिन कॉलबैक कभी लागू नहीं होती है।
नई स्मैक लाइब्रेरी के साथ एंड्रॉइड पर इन्हें कैसे काम करना है? क्या किसी ने पहले से ही इन सुविधाओं को लागू किया है?
धन्यवाद!
जब आप रिसीवर काम करता है तो उपयोगकर्ता ऑनलाइन और ऑफ़लाइन स्थिति प्राप्त करने में सक्षम होता है, तो रिसीवर काम करता है लेकिन आपको अपने कोडिंग साइड से अंतिम बार बनाए रखना होगा। –