よろしく質問1: まず、変更のアプリレベルのbuild.gradle:
あなたの依存関係のセグメントに以下を追加します。 compile ("org.igniterealtime.smack:smack-android:4.1.0") { exclude group: 'xpp3', module: 'xpp3' } // Optional for XMPPTCPConnection compile ("org.igniterealtime.smack:smack-tcp:4.1.0") { exclude group: 'xpp3', module: 'xpp3' } // Optional for XMPP-IM (RFC 6121) support (Roster, Threaded Chats, …) compile ("org.igniterealtime.smack:smack-im:4.1.0") { exclude group: 'xpp3', module: 'xpp3' }
あなたのリポジトリのセグメントに以下を追加します。 maven { url 'https://oss.sonatype.org/content/repositories/snapshots' } mavenCentral()
プロジェクトには既にigniterealtime xmppライブラリが含まれていますので、今のところそれを使用できます。
XMPPTCPConnectionConfiguration cfg = XMPPTCPConnectionConfiguration.builder()
.setServiceName("online.yourdomain.com")
.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled)
.setCompressionEnabled(false)
.setDebuggerEnabled(true)
.build();
XMPPTCPConnection xmppConnection = new XMPPTCPConnection(cfg);
xmppConnection.connect();
if (!xmppConnection.isAuthenticated()) {
try {
xmppConnection.login(jabberId, yourSessionStr, resourceID);
} catch (SmackException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
よろしく質問2:
String XMPP_NAMESPACE = "myapp:notification";
SimpleIQ iq = new SimpleIQ("query", XMPP_NAMESPACE) {
@Override
protected IQChildElementXmlStringBuilder getIQChildElementBuilder(IQChildElementXmlStringBuilder xml) {
xml.attribute("action", "list");
xml.rightAngleBracket();
xml.element("from", lastDisconnectedTime + "");
return xml;
}
};
iq.setType(IQ.Type.get);
try {
xmppConnection.sendPacket(iq);
} catch (SmackException.NotConnectedException e) {
e.printStackTrace();
}
PS:私はIQパケットを送信見つかったがasmackを使っほど便利ではありません。ここでIQパケットを送信するための古い方法です。
IQ iq = new IQ() {
@Override
public String getChildElementXML() {
String query = "<query xmlns=\'" + XMPP_NAMESPACE + "\' action=\'list\'>";
query += "<from>" + lastDisconnectedTime + "</from>";
query += "</query>";
return query;
}
};
iq.setType(Type.GET);
xmppConnection.sendPacket(iq);
予告:私はXMPP接続を確立することはできません、そうでない場合は、XMPPTCPConnectionConfigurationを作成するときにセキュリティモードを無効にする必要があります。このxmppを安全に接続させたい場合は、独自のbks認証ファイルを作成してからxmpp接続で使用する必要があります。
あなたは私のポイントを得ることができますか? –