Как получить список InetAddress в Обнаружении сетевых служб?
Привет, друзья! Я использую NETWROK SERVICE DISCOVERY в приложении для Android, чтобы найти тип службы "_dockset._tcp". Я успешно получаю список устройств, но не могу получить список InetAddres всех устройств. Я получаю 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
1 ответ
Вы должны следовать 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(....);
}
}
};
Вам необходимо выполнять операции с экземплярами служебной информации (хост, тип и т. Д.) Индивидуально. Конечно, вы можете изменить критерии, чтобы добавить их в список, например, фильтрацию по типу и / или названию сервиса.