如何以编程方式显示连接到 android 热点的设备的 IP 地址?

How to display IP address of devices which are connected to android hotspot programmatically?

我需要在应用程序中显示连接到 android 热点的设备的 IP 地址。

请帮帮我

您在系统文件中有客户信息:/proc/net/arp 您将需要外部存储权限。

文件内容示例:

IP address       HW type     Flags       HW address            Mask     Device 
192.168.43.40    0x1         0x2         c0:ee:fb:43:e9:f8     *        wlan0

您应该解析文件并获取数据。

例如,您可以尝试这样的操作:

public ArrayList<String> getClientList() {
    ArrayList<String> clientList = new ArrayList<>();
    BufferedReader br = null;
    try {
        br = new BufferedReader(new FileReader("/proc/net/arp"));
        String line;
        while ((line = br.readLine()) != null) {
            String[] clientInfo = line.split(" +");
            String mac = clientInfo[3];
            if (mac.matches("..:..:..:..:..:..")) { // To make sure its not the title
                clientList.add(clientInfo[0]);
            }
        }
    } catch (java.io.IOException aE) {
        aE.printStackTrace();
        return null;
    }
    return clientList;
}

***在 root 设备上测试。