【发布时间】:2017-02-10 22:56:37
【问题描述】:
我有一个代码可以像这样发现房间住户:
public List<String> getRoomOccupants() {
List<String> occupants = new ArrayList<>();
DiscoverItems discoItems = null;
DiscoverItems.Item item = null;
try {
ServiceDiscoveryManager discoManager = ServiceDiscoveryManager.getInstanceFor(connection);
discoItems = discoManager.discoverItems(zipWhipNumber+"@"+roomService);
Iterator<DiscoverItems.Item> occupantsItems = discoItems.getItems().iterator();
while(occupantsItems.hasNext())
{
item = occupantsItems.next();
occupants.add(item.getName());
System.out.println(" EntityID : " + item.getEntityID() + "\n EntityName : " + item.getName());
}
} catch (NoResponseException | XMPPErrorException
| NotConnectedException e1) {
e1.printStackTrace();
}
return occupants;
}
但 EntityID 是房间中用户的名称,而不是完整的 JID。因此,如果用户不小心将名称更改为另一个昵称,我将无法找到他的完整 JID。
谁能告诉我如何从房间里获取完整的 JID?
谢谢。
【问题讨论】: