1

根据Google Anymote 协议文档,可以通过发送 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());             
    }
});
4

1 回答 1

0

显然 mDNS 不用于发现设备,尽管可以,但无法仅过滤掉我发现的 GTV 设备。

而是在网络上的端口 9101 上广播一条消息。请参阅以下实现:

http://code.google.com/p/google-tv-remote/source/browse/src/com/google/android/apps/tvremote/BroadcastDiscoveryClient.java

于 2012-03-28T15:54:39.870 回答