嗨朋友我在Android应用中使用NETWROK SERVICE DISCOVERY来查找服务类型" _dockset._tcp"。我成功获取设备列表但我无法获得所有设备的InetAdd列表。我只获得了第一个被发现设备的InetAdress,但我想要发现所有设备的InetAdress。您将非常感谢您的帮助。我正在使用
public void startResolveListener(){
mResolveListener= new NsdManager.ResolveListener() {
@Override
public void onResolveFailed(NsdServiceInfo serviceInfo, int errorCode) {
Log.d("resolve service failed"," with error"+errorCode);
}
@Override
public void onServiceResolved(NsdServiceInfo serviceInfo) {
;
int port=serviceInfo.getPort();
InetAddress host=serviceInfo.getHost();
mHost=String.valueOf(host);//here i am getting one host
}
};
}
我很困惑如何迭代InetAddess
答案 0 :(得分:0)
您需要遵循NsdManager
图表并使您的听众适应:
mResolveListener= new NsdManager.ResolveListener() {
@Override
public void onResolveFailed(NsdServiceInfo serviceInfo, int errorCode) {
Log.d("resolve service failed"," with error"+errorCode);
mNsdServiceList.remove(serviceInfo);
}
@Override
public void onServiceResolved(NsdServiceInfo serviceInfo) {
if(!mNsdServiceList.contains(serviceInfo)){
mNsdService.add(serviceInfo);
mNsdManager.resolveService(....);
}
}
};
您需要单独对服务信息实例(主机,类型等)执行操作。当然,您可以修改标准以进一步添加到列表,例如过滤服务类型和/或名称。