用户连接WIFI接入点时收到通知

时间:2014-01-03 20:11:05

标签: android wifi access-point

我想定义与我的接入点的连接。我希望在用户连接时收到通知。 我知道我可以查询arp表(/ proc / net / arp),从中我可以找到连接的用户。以下是示例代码:

public static ArrayList<ClientScanResult> getClientList() {
    BufferedReader br = null;
    ArrayList<ClientScanResult> result = null;

    try {
        result = new ArrayList<ClientScanResult>();
        br = new BufferedReader(new FileReader("/proc/net/arp"));
        String line;
        while ((line = br.readLine()) != null) {
            String[] splitted = line.split(" +");
            Log.d("Debug:line=", line);
            if ((splitted != null) && (splitted.length >= 4)) {
                // Basic sanity check
                String mac = splitted[3];

                if (mac.matches("..:..:..:..:..:..")) {
                    result.add(new ClientScanResult(splitted[0], splitted[3], splitted[5]));
                }
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            br.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    return result;
}

问题:有没有更好的方法来做到这一点,除了每隔n秒查看一次arp-table?

UPD : 如果你连接到一个接入点,然后断开连接,那么该记录仍将在arp-table中。也就是说,直到我无法获得所有连接用户的列表

1 个答案:

答案 0 :(得分:1)