Cannot get list of public rooms from xmpp Server on Android?

android, android-2.2-froyo, asmack, smack, xmpp

Solution

I have found the Solution to the problem.

The Android asmack library was using this in getHostedRooms(Connection connection, String serviceName) method

ServiceDiscoveryManager discoManager =ServiceDiscoveryManager.getInstanceFor(connection);

i replaced it with

ServiceDiscoveryManager discoManager = new ServiceDiscoveryManager(connection);

For those who are confused where this method is its in

Package: org.jivesoftware.smackx.muc

File: MultiUserChat.java

After you have done this. We have to register all the providers in Android whose detail can be found here. These providers are automatically registered when are using JAVA's smack library (In java Development) but in Android we have to register them ourself.

Problem

Hello Everyone i am new to android and i am currently stuck on this. I have to return list of public rooms created on xmpp server. The problem i am having is that the code below works fine for java but there is a null pointer exception in case of android. Any help regarding this would be appreciated. I am using an openfire server and testing it on local machine so that is the reason why i am using ip Address instead of domain name. I am using smack library for JAVA and Asmack Library for android ``` String server_name = "192.168.3.113"; ConnectionConfiguration config = new ConnectionConfiguration( server_name, 5222); XMPPConnection connection = new XMPPConnection(config); try { connection.connect(); connection.login("s1", "123"); Collection<HostedRoom> rooms = MultiUserChat.getHostedRooms( connection, "conference.geekoid"); for (HostedRoom room : rooms) { System.out.println(room.getName()); } } catch (XMPPException e) { System.out.println("Error" + e.getMessage() + "\n"); //for JAVA log.e("Android Error",e.getmessage()); // For Android } ```

Original source

Related problems