0

当我按照android 开发人员的指南注册服务时,NsdServiceInfo-Object 不包含注册服务后应包含的所有信息。

mRegistrationListener = new NsdManager.RegistrationListener() {

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

[...]

}

因此,当onServiceRegistered()触发 -callback 时(仅当服务已成功注册时才应该如此),日志消息会显示:

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

因此,对于插入的注册,类型 (-http.-tcp.) 已删除,并且_NsdServiceInfo. 这不可能是正确的。

这发生在具有各种 android 版本的各种设备上。

有人对此有解释吗?

4

1 回答 1

0

您应该在服务类型中使用下划线而不是连字符 (-http.-tcp.),例如:_http._tcp。

语法是"_<protocol>._<transportlayer>".

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

于 2018-11-20T21:00:23.340 回答