how to get openfire online registered users from android client using a Smack? -


i trying create chat app. - installed openfire server in local machine - , added users through openfire server admin panel - trying display available users in android emulator. - able connected openfire server usign asmack lib. getting error on connection.getroster();.

       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());             (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 connect "+ connection.gethost());             log.e("xmppchatdemoactivity", e.tostring());         } 

this code give me error on line connection.getroster(); not found.

here dependencies

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 xmpptcpconnection compile "org.igniterealtime.smack:smack-tcp:4.1.0" // optional xmpp-im (rfc 6121) support (roster, threaded chats, …) compile "org.igniterealtime.smack:smack-im:4.1.0" // optional xmpp extensions support compile "org.igniterealtime.smack:smack-extensions:4.1.0" 

smack doesn't have such feature. can users list using rest api. install rest api plugin in server side plugin repository. in client side add rest api client,

maven :

<dependency>     <groupid>org.igniterealtime</groupid>     <artifactid>rest-api-client</artifactid>     <version>1.1.3</version> </dependency> 

gradle :

compile 'org.igniterealtime:rest-api-client:1.1.3' 

example :

authenticationtoken token = new authenticationtoken("rest_api_token"); restapiclient client = new restapiclient("host", port, token); userentities entities = client.getusers();    // userentities have users list including admin. 

** rest api token in server's rest api section.


Comments