【发布时间】:2012-03-30 06:51:30
【问题描述】:
根据Google Anymote Protocol documentation,可以通过发送mDNS数据包发现GoogleTV设备。
GoogleTV 设备应通过使用字符串“_anymote._tcp.local”标识自己来响应。
但是,当我发送 mDNS 数据包时,我会收到带有 NSZGT1-6017678.local 的响应。
除非文档不正确,否则我看不到将设备识别为 GTV 设备的方法。
我有什么遗漏吗?
例如,以下代码中只有airplay字符串实际返回任意设备:
String airplay = "_airplay._tcp.local.";
String gtv1 = "_anymote._tcp.local.";
String gtv2 = "_anymote._tcp.local";
JmDNS jmDNS = JmDNS.create();
jmDNS.addServiceListener(gtv1, new ServiceListener() {
public void serviceResolved(ServiceEvent event) {}
public void serviceRemoved(ServiceEvent event) {}
public void serviceAdded(ServiceEvent event) {
System.out.println("Service added: " + event.getName() + " " + event.getInfo().getName());
}
});
【问题讨论】:
-
尝试调用 jmDNS.requestServiceInfo(gtv2, event.getName());在 serviceAdded(ServiceEvent event) 方法中,结果 serviceResolved(ServiceEvent event) 方法被调用,看看你是否可以在 serviceResolved(ServiceEvent event) 方法中获得更多信息。