Как получить список 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(....);
              }
        }
    };

Вам необходимо выполнять операции с экземплярами служебной информации (хост, тип и т. Д.) Индивидуально. Конечно, вы можете изменить критерии, чтобы добавить их в список, например, фильтрацию по типу и / или названию сервиса.

Другие вопросы по тегам