在iPhone上创建自定义服务,例如“_test._tcp.local”。在Bonjour,我可以通过WiFi或/和蓝牙寻求/广播这项服务。Android可以通过蓝牙支持Zeroconf/Bonjour吗? TCP/IP如何?
有可能在Android?
我知道有jmDNS但是从我的理解只能通过WiFi /网络, 不蓝牙工作。
感谢
编辑由塞瓦·阿列克谢耶夫,谁提供的赏金:我不是解决方法后(如零配置SANS蓝牙或蓝牙SANS零配置)。我追求真实的东西。
在iPhone上创建自定义服务,例如“_test._tcp.local”。在Bonjour,我可以通过WiFi或/和蓝牙寻求/广播这项服务。Android可以通过蓝牙支持Zeroconf/Bonjour吗? TCP/IP如何?
有可能在Android?
我知道有jmDNS但是从我的理解只能通过WiFi /网络, 不蓝牙工作。
感谢
编辑由塞瓦·阿列克谢耶夫,谁提供的赏金:我不是解决方法后(如零配置SANS蓝牙或蓝牙SANS零配置)。我追求真实的东西。
您可以使用BluetoothSocket和BluetoothServerSocket创建TCP像蓝牙插座。
下面是Android的dnssd样本: https://github.com/twitwi/AndroidDnssdDemo
您可能需要修改jmdns库,使得它创建蓝牙套接字蓝牙功能是否打开,否则将创建简单的插座。将套接字通信封装在另一个可有条件创建套接字的类中。
恩,我最终在iOS到Android之后,反之亦然服务发现。我不认为这些将互操作,因为iOS实现是基于TCP/IP的。 –
是的,这是一个很高的概率,但文档说它类似于TCP套接字。所以试试看吧。 – Ronnie
该示例没有声明蓝牙兼容性并没有实现它。我现在将JmDNS集成到我的应用程序中了一段时间;通过WiFi上的TCP/IP,它可以与iOS通话。现在,仅仅因为接口类似,并不意味着RFCOMM套接字可以与TCP/IP协议进行通信。那些是不同的运输。我不知道BT是否有可能在Android的堆栈之上重新实现TCP/IP。 –
有几个原因,这是不可能的现在。与你的问题最相关的是 - 正如你可能经历的那样 - jmDNS需要一个TCP/IP链接来发布或浏览服务(它需要一个绑定的IP地址)。正如其他答案&评论状态,你需要一个建立的PANU链接,Android目前不提供。
它不会工作的其他原因有:
你可以改为考虑使用蓝牙4.0 LE - 至少有针对开始在iOS 5中提供了一个从配置文件,并扩展用于支持主配置文件中的iOS 6
没有在苹果API蓝牙,因为Android目前不支持通过蓝牙的TCP/IP,并且Android的原生NSD支持(network service discovery)通过IP工作。
但是,它可以通过Wi-Fi工作。此外,Android支持通过Wi-Fi Direct进行服务发现,与蓝牙相比,它可以提供更大的范围和电池效率。有关如何将服务发现集成到启用了Wi-Fi的应用程序的指南,请查看Android Training lesson。这个答案
部分是从我们Dear Android video response这个问题
重复我很好奇,想知道关于蓝牙答案......是JmDNS alowed检测通过蓝牙暴露的Bonjour服务? – fvisticot
让我们从基础开始:有没有办法在Android上通过蓝牙运行TCP/IP?如果是这样,那么可以在该特定接口上选择JmDNS。也许只是曝光,而不是发现,反之亦然。 –
相关:[Linux上的蓝牙TCP/IP](http://giovanni.wordpress.com/2007/04/06/how-to-use-tcpip-over-bluetooth/) –