首页 > 解决方案 > 获取范围内wifi路由器的mac地址

问题描述

我有以下代码列出了范围内所有网络的 ssid 和 rssi:

    public static void getWIFI(Context context) {
        WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);

        WifiInfo wifiInf = wifiManager.getConnectionInfo();
        String macAddr = wifiInf.getMacAddress();

        final List<ScanResult> results = wifiManager.getScanResults();

        if (results != null) {
            StringBuffer buf = new StringBuffer();

            for (int i = 0; i < results.size(); i++) {
                String ssid = results.get(i).SSID;
                float rssi = results.get(i).level;
                buf.append(ssid + ": " + rssi + "\n");
            }

            Log.i("W-LAN", buf.toString());
        }
    }

但是调用wifiInf.getMacAddress();总是返回相同的通用地址。我读过这在 Android 6.0 之前一直有效。我能找到的所有解决方案仅列出您自己的 MAC 地址,而不是所有网络。有没有办法获取范围内所有网络的mac地址和rssi?

标签: javaandroidwifi

解决方案


 for (ScanResult scanResult : scanResults) {
    Map hashMap = new HashMap();
    hashMap.put("wifiMac", scanResult.BSSID == null ? "" : scanResult.BSSID);
    hashMap.put("ssid", scanResult.SSID);
    hashMap.put("rssi", scanResult.level);
    arrayList.add(hashMap);
}

你可以试试这个兄弟


推荐阅读