[英]Connect to Openfire server via Android
我正在嘗試使用以下代碼連接到正在運行的Openfire服務器:
public static final String HOST = "ipofmyserver";
public static final int PORT = 9122; // set by me
//public static final String SERVICE = "gmail.com"; not used because i don't know what it refers to
ConnectionConfiguration connConfig = new ConnectionConfiguration(HOST, PORT);
XMPPConnection connection = new XMPPConnection(connConfig);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Connect to the server
try {
connection.connect();
} catch (XMPPException e) {
connection = null;
//Unable to connect to server
}
//Most servers require you to login before performing other tasks.
if (connection != null) {
try {
connection.login("xxxx", "xxxx");
} catch (XMPPException e) {
e.printStackTrace();
}
}
}
logcat的
編輯
我添加了一個exceptionininitializer異常,現在它不會崩潰,但是現在我得到了:
05-07 03:27:55.734 3184-3184/xxx.xxx.xxxxxE/dalvikvm﹕ Could not find class 'javax.naming.directory.InitialDirContext', referenced from method org.jivesoftware.smack.util.dns.JavaxResolver.<clinit>
UPDATE
我了解到,Android僅允許訪問某些標准JRE類,這些類在此白名單中https://developers.google.com/appengine/docs/java/jrewhitelist
所以..如果我想使用Smack api,該怎么辦? 我不能嗎 我嘗試了aSmack,但必須在linux或mac上編譯,而且我只有Windows
請如果您使用的是smack api,則還必須與此API一起使用xpp.jar到您的項目中。 我也遇到了同樣的問題,並使用此api解決了這個問題。
這是該api的鏈接。 Xpp下載鏈接
在Android Studio Gradle中,依賴項對我有用:
dependencies {
compile 'org.igniterealtime.smack:smack-android:4.1.1'
compile 'org.igniterealtime.smack:smack-android-extensions:4.1.1'
compile 'org.igniterealtime.smack:smack-core:4.1.1'
compile 'org.igniterealtime.smack:smack-tcp:4.1.1'
compile 'org.igniterealtime.smack:smack-extensions:4.1.1'
compile 'org.igniterealtime.smack:smack-experimental:4.1.1'
compile 'org.igniterealtime.smack:smack-resolver-minidns:4.1.1'
compile 'org.igniterealtime.smack:smack-sasl-provided:4.1.1'
compile 'org.igniterealtime.smack:smack-im:4.1.1'
compile 'org.jxmpp:jxmpp-core:0.4.2-beta1'
compile 'org.jxmpp:jxmpp-util-cache:0.4.2-beta1'
compile 'de.measite.minidns:minidns:0.1.1'
compile 'com.android.support:appcompat-v7:22.2.0'
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.