チャットアプリを作成しようとしています。 - ローカルマシンにopenfireサーバーをインストールしました - openfireサーバーの管理パネルからいくつかのユーザーを追加しました - 今、私はすべての利用可能なユーザーをAndroidのエミュレータに表示しようとしています。 - 私はopenfireサーバーに接続してaSmackLibを使用することができます。しかし、connection.getRoster();でエラーが発生しました。Smackを使ってアンドロイドクライアントからオンラインで登録したユーザーをopenfireにする方法は?
ConnectionConfiguration config = new ConnectionConfiguration("10.42.0.3", 5222, "localhost");
connection = new XMPPConnection(config);
try {
connection.connect();
Log.d("SMACK ", " CONNECTED");
// list online contacts
Roster roster = connection.getRoster();
Collection<RosterEntry> entries = roster.getEntries();
Log.d("TRACE", "entries.size()=" + entries.size());
for (RosterEntry e : entries) {
Log.d("PRESENCE", e.getUser() + "=" + roster.getPresence(e.getUser()).isAvailable());
if (roster.getPresence(e.getUser()).isAvailable()) {
Log.d("ADD", "NAME_KEY=" + e.getName() + " USERJID_KEY=" + e.getUser());
//contacts.add(contact);
}
}
}
catch (XMPPException e){
Log.e("XMPPChatDemoActivity", "Failed to connect to "+ connection.getHost());
Log.e("XMPPChatDemoActivity", e.toString());
}
このコードは、私にこのライン connection.getRoster()でエラーを与えます。 が見つかりませんでした。ここ
私私 依存関係
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.android.support:design:22.2.1'
compile 'com.google.android.gms:play-services:8.3.0'
compile "org.igniterealtime.smack:smack-java7:4.1.0"
// Optional for XMPPTCPConnection
compile "org.igniterealtime.smack:smack-tcp:4.1.0"
// Optional for XMPP-IM (RFC 6121) support (Roster, Threaded Chats, …)
compile "org.igniterealtime.smack:smack-im:4.1.0"
// Optional for XMPP extensions support
compile "org.igniterealtime.smack:smack-extensions:4.1.0"
あなたが「アラ可能なユーザー」サーバーで必要な場合は、あなたはOpenfire JABBER SEARCH(search.jarプラグイン)にインストールする必要があります。しばしばそれはバンドルであり、次にリサーチを実装します。それは何か違うものです。 – MrPk