如何获取 Android 中所有附近设备的 MAC 地址

How to get MAC addresses of all nearby devices in Android

谁能告诉我如何以编程方式找到 Android 附近所有设备的 MAC 地址?

我正在尝试设计一个 Android 应用程序,它能够通过 MAC 地址使用广播消息将数据传送到 Arduino 微控制器 (ESP8266)。 我希望两个设备之间的数据通信不依赖于连接(WiFi 或蓝牙)。因此,我在最初的问题中补充说,Android 和 Arduino 之间是否还有其他无需连接的通信方式。

这看起来像是您要实现的目标(不是我的)的示例: https://github.com/rorist/android-network-discovery/blob/master/src/info/lamatricexiste/network/DnsDiscovery.java

我觉得你的第二个问题措辞不当。

  1. 广播:“广播是一种将消息同时传送给所有收件人的方法”。 您是否正在尝试向所有 ESP8266 发送消息(注意 ESP 不是 Arduino)?如果是这样,请使用专用广播地址:IP 地址的主机部分全为 1。所以在本地网络上它将是 192.168.x.255.

  2. 您可以通过 MAC 地址进行通信,但这似乎效率很低。如果你绝对想这样做,你必须深入研究 TCP/IP 堆栈(或其他使用 MAC 地址的堆栈)的较低层。

  3. 没有媒介就无法交流。您需要有线或无线连接。也许您指的是 'connectionless' 发送数据包的方式,例如 UDP。使用 UDP,您无需事先握手即可将数据包发送到您的 ESP(但您仍然需要一种媒介:wifi 或以太网)。

Android 和 Arduino 可以通过 BLE 进行通信,无需配对或外部基础设施。