如何在我的 android 应用程序中访问 raspberry.local?

Ais*_*are 5 dns android mdns jmdns raspberry-pi2

我在我的覆盆子PI运行的Django,和我使用的avahi守护进程来访问我的RPI raspberrypi.local。在我的 Django 上,我为我的 android 应用程序制作了 API,以便通过 HTTP 协议访问。例如,我的 http 请求网址之一是: http://raspberrypi.local/api/getUserNames/

问题是 android 没有在我的本地 wifi 网络上访问这个 url,我已经确认我的 android 设备和 rpi 都连接到同一个 wifi 网络,但仍然http://raspberrypi.local无法在 android 上工作。虽然它在我的 PC 和 MAC 上运行良好。

我试图找到解决方案并经历了许多关于 bonjour、mDNS、jmDNS、android-multicast 的问答。但所有这些要么太混乱而无法实施,要么不起作用。请帮助我,我被卡住了一段时间。

注意: 在我的 Rpi 上,avahi-daemon 将自己广播为“_workstation._tcp”。服务类型

——

我的解决方案:

http://www.dodgycoder.net/2015/02/setting-up-bonjourzeroconfmdnsnsd.html

Android NSD(网络服务发现)解决了我的问题。我只使用了 Discovery Listener 和 Resolve Listener 来解决我的目的。我专门用来SERVICE_TYPE = "_workstation._tcp.";avahi-daemon搜索raspberrypi.local

Ais*_*are 0

Android NSD(网络服务发现)解决了我的问题。我只使用 Discovery Listener 和 Resolve Listener 来解决我的目的。

注意-您必须使用SERVICE_TYPE = "_workstation._tcp.";avahi-daemon 来搜索 raspberrypi.local

这是解决方案的链接 - http://www.dodgycoder.net/2015/02/setting-up-bonjourzeroconfmdnsnsd.html

  • 这可能对您有用,**但这不是您最初问题的答案** - 您所做的是*更改*树莓派以*宣传服务*,然后*解析该服务的实例* -您实际上并未按照原始问题中的要求查找 mDNS 主机名。讽刺的是,看起来 Android 在幕后使用的底层本机工具*可以*解析主机,但它似乎不提供公共 API 来解析除服务之外的任何内容。 (2认同)