java - 获取范围内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?
解决方案
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);
}
你可以试试这个兄弟
推荐阅读
- node.js - 从 MongoDB 数组中删除对象 - mongoose
- r - 在 R 中为未命名的变量创建标签列
- javascript - 如何使用 gsap 和 javascript 切换标题?
- java - 为什么没有 RequestMappingHandlerMapping 类型的合格 bean?
- javascript - javascript:具有大量空值的二维数组 VS 使用索引的对象数组
- azure - 将 Microsoft Dynamics 导出到 Azure SQL 超大规模
- python - PYTHON + KIVYMD / KIVY | 滚动视图仅在屏幕的一半上,但在导航抽屉中使用时正常工作
- javascript - 为什么此功能不在每个画布上粘贴一个图像?
- html - 尝试重新创建此模板,但菜单无法正常工作?
- java - 云中的 Spring Boot API 不如本地快