Android可以通过蓝牙支持Zeroconf/Bonjour吗?TCP/IP 怎么样?

2022-09-02 04:51:47

在iPhone上,如果我创建自定义服务,例如Bonjour中的“_test._tcp.local.”,我可以通过WiFi或/和蓝牙寻求/广播此服务。

在安卓上是可能的吗?

我知道有jmDNS,但据我所知,它只能通过WiFi /网络工作,而不是蓝牙。

谢谢

编辑由Seva Alekseyev提供赏金:我不追求解决方法(如Zeroconf sans Bluetooth或Bluetooth sans Zeroconf)。我追求真实的东西。


答案 1

不适用于蓝牙,因为Android目前不支持TCP / IP over Bluetooth,而Android的本机NSD支持(网络服务发现)通过IP工作。

但是,它确实可以通过Wi-Fi工作。此外,Android支持通过Wi-Fi Direct进行服务发现,这为您提供了比蓝牙更大的范围和电池效率。有关如何将服务发现集成到支持 Wi-Fi 直接的应用程序的指南,请查看 Android 培训课程

这个答案的部分内容是从我们亲爱的Android视频对这个问题的回应中复制的


答案 2

您可以使用BluetoothSocketBluetoothServerSocket在蓝牙上创建TCP般的套接字。

以下是 android dnssd 的示例:https://github.com/twitwi/AndroidDnssdDemo

您可能需要修改 jmdns 库,以便在蓝牙打开时创建蓝牙套接字,否则创建简单的套接字。将套接字通信封装在有条件地创建套接字的其他类中。


推荐