Обнаружение сетевых служб: пустой NsdServiceInfo в onServiceRegistered() — обратный вызов RegistrationListener

Когда я регистрирую службу в соответствии с рекомендациями разработчиков Android, NsdServiceInfo-Объект не содержит всей информации, которую он должен содержать после регистрации службы.

mRegistrationListener = new NsdManager.RegistrationListener() {

  @Override
  public void onServiceRegistered(NsdServiceInfo _NsdServiceInfo) {
  Log.i(TAG, "Service registered: "+_NsdServiceInfo);
  }

[...]

}

Поэтому, когда запускается onServiceRegistered()-обратный вызов (это должно быть только в том случае, если служба была успешно зарегистрирована), в сообщении журнала говорится:

Service registered: name: LTCServer_Niklas' Galaxy A3, type: null, host: null, port: 0, txtRecord: 

Таким образом, для вставленной регистрации тип (-http.-tcp.) был удален, и в _NsdServiceInfo нет ни хоста, ни порта. Это не может быть правильным.

Происходит это на разных устройствах с разными андроид-версиями.

У кого-нибудь есть объяснение по этому поводу?


person Niklas D    schedule 01.08.2018    source источник
comment
Все еще сталкивается с той же проблемой. Неужели никто не имеет представления об этом? Можно ли сообщить об этой ошибке где-нибудь в Google?   -  person Niklas D    schedule 03.09.2018


Ответы (1)


Вы должны использовать символы подчеркивания вместо дефисов (-http.-tcp.) в типе вашего сервиса, например: _http._tcp.

Синтаксис "_<protocol>._<transportlayer>".

https://developer.android.com/training/connect-devices-wireless/nsd#register

person Oliver    schedule 20.11.2018