Smack 4.1.0 android 名册未显示
Smack 4.1.0 android Roster not displaying
我正在尝试显示所有可用的联系人,即使它没有显示
代码:
Roster roster = Roster.getInstanceFor(connection);
Collection<RosterEntry> entries = roster.getEntries();
System.out.println("ENTRIEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEESS");
int roster_counter = 0;
for (RosterEntry entry : entries) {
roster_counter++;
try {
System.out.println("Here is Roster " + Integer.toString(roster_counter) + ": " + entry);
}catch (Exception e){
System.out.println("2222222222222222222222");
System.out.println(e);
}
}
输出:
04-01 18:07:41.535 2756-2776/com.example.example I/System.out﹕ ##########################################################
04-01 18:07:41.535 2756-2776/com.example.example I/System.out﹕ ====================================================
04-01 18:07:41.537 2756-2776/com.example.example I/System.out﹕ PRESSSSSEEEEEEN STABLISHEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEED
我认为它应该打印所有条目,对吗?但它打印的不是它们。有帮助吗?连接配置是这样的:
configBuilder.setDebuggerEnabled(true);
configBuilder.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
如有任何帮助,我将不胜感激。
我修复了它添加:
if (!roster.isLoaded())
roster.reloadAndWait();
之后:
Collection<RosterEntry> entries = roster.getEntries();
求关注
public void getRoaster(final Callback<Collection<RosterEntry>> callback) {
final Roster roster = Roster.getInstanceFor(connection);
if (!roster.isLoaded())
try {
roster.reloadAndWait();
} catch (SmackException.NotLoggedInException | SmackException.NotConnectedException | InterruptedException e) {
e.printStackTrace();
}
Collection<RosterEntry> entries = roster.getEntries();
for (RosterEntry entry : entries) {
android.util.Log.d(AppConstant.PUBLIC_TAG, entry.getName());
}
}
我正在尝试显示所有可用的联系人,即使它没有显示
代码:
Roster roster = Roster.getInstanceFor(connection);
Collection<RosterEntry> entries = roster.getEntries();
System.out.println("ENTRIEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEESS");
int roster_counter = 0;
for (RosterEntry entry : entries) {
roster_counter++;
try {
System.out.println("Here is Roster " + Integer.toString(roster_counter) + ": " + entry);
}catch (Exception e){
System.out.println("2222222222222222222222");
System.out.println(e);
}
}
输出:
04-01 18:07:41.535 2756-2776/com.example.example I/System.out﹕ ##########################################################
04-01 18:07:41.535 2756-2776/com.example.example I/System.out﹕ ====================================================
04-01 18:07:41.537 2756-2776/com.example.example I/System.out﹕ PRESSSSSEEEEEEN STABLISHEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEED
我认为它应该打印所有条目,对吗?但它打印的不是它们。有帮助吗?连接配置是这样的:
configBuilder.setDebuggerEnabled(true);
configBuilder.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
如有任何帮助,我将不胜感激。
我修复了它添加:
if (!roster.isLoaded())
roster.reloadAndWait();
之后:
Collection<RosterEntry> entries = roster.getEntries();
求关注
public void getRoaster(final Callback<Collection<RosterEntry>> callback) {
final Roster roster = Roster.getInstanceFor(connection);
if (!roster.isLoaded())
try {
roster.reloadAndWait();
} catch (SmackException.NotLoggedInException | SmackException.NotConnectedException | InterruptedException e) {
e.printStackTrace();
}
Collection<RosterEntry> entries = roster.getEntries();
for (RosterEntry entry : entries) {
android.util.Log.d(AppConstant.PUBLIC_TAG, entry.getName());
}
}