Android XMPP响应IQ不';t显示或带回IQ响应
在ejabberd服务器后面运行以下Android代码,并执行其任务。然而,这不会出现在ejabberd日志/调试文件中,并且/或者IQ响应不会返回到客户端设备(smack 4.4.2)。我如何获得IQ响应,我们是否需要在该代码中添加代码以返回IQ结果/响应?或者我错过了什么Android XMPP响应IQ不';t显示或带回IQ响应,android,xmpp,ejabberd,smack,Android,Xmpp,Ejabberd,Smack,在ejabberd服务器后面运行以下Android代码,并执行其任务。然而,这不会出现在ejabberd日志/调试文件中,并且/或者IQ响应不会返回到客户端设备(smack 4.4.2)。我如何获得IQ响应,我们是否需要在该代码中添加代码以返回IQ结果/响应?或者我错过了什么 DataForm.Builder xep0004 = DataForm.builder(DataForm.Type.submit); //new DataForm(DataForm.Type.submit);
DataForm.Builder xep0004 = DataForm.builder(DataForm.Type.submit); //new DataForm(DataForm.Type.submit);
TextSingleFormField.Builder token = FormField.builder("token");
token.setValue(App.user_settings.getFirebaseToken(App.mContext));
TextSingleFormField.Builder device_id = FormField.builder("android-id"); //new FormField("device-id");
device_id.setValue(App.user_settings.getECCID(App.mContext));
xep0004.addField(token.build());
xep0004.addField(device_id.build());
IQ pushStanza = new IQ("command", "http://jabber.org/protocol/commands") {
@Override
protected IQChildElementXmlStringBuilder getIQChildElementBuilder(IQChildElementXmlStringBuilder xml) {
xml.attribute("action", "execute");
xml.attribute("node", "register-push-fcm");
xml.setEmptyElement();
return xml;
}
};
pushStanza.setType(IQ.Type.set);
pushStanza.setTo(JidCreate.from("p2.server.com"));
pushStanza.setFrom(connection.getUser());
pushStanza.addExtension(xep0004.build());
if (connection.isSmEnabled()) {
try {
connection.addStanzaIdAcknowledgedListener(pushStanza.getStanzaId(), new StanzaListener() {
@Override
public void processStanza(Stanza stanza) throws NotConnectedException, InterruptedException, SmackException.NotLoggedInException {
Log.e("stanza result", stanza.toXML().toString());
// registerTokenToXmpp1();
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
connection.sendStanza(pushStanza);