我想使用 Android 网络服务发现 (NSD) 功能来发现在本地域上发布的一些本地网络服务。我在 Android 网站上阅读了有关 Android NSD的官方文档。我可以毫无问题地找到在 .local 域上发布的网络服务。但是我有一些其他网络服务不是直接在 .local 域上发布的,而是在 .local 等域上发布的mydevice.mycompany.local
。在 Android NSD API 示例中,有一个函数用于发现具有给定服务类型(“_http._tcp.”)、协议和侦听器的服务:
discoverServices("_http._tcp.", NsdManager.PROTOCOL_DNS_SD, mDiscoveryListener);
默认情况下,这只会发现.local
域上的网络服务,而不是像我这样的其他本地域mydevice.mycompany.local
。但是,我在 Android 上安装了 Bonjour 应用程序,它可以找到其他域服务。所以我认为有一种方法可以通过代码获得这些网络服务。
我浏览了 Android NSD API,但没有找到让我指定要从中发现服务的域名的选项。那么如何使用 Android NSD 代码来发现这样的域上的本地网络服务呢?