-2

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

请帮我

4

1 回答 1

2

您在系统文件中有客户端信息:/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;
}

***在有根设备上测试。

于 2016-11-27T12:27:45.607 回答