答案 0 :(得分:10)
您可以使用'WifiManager'访问wifi数据,扫描完成后扫描结果包含所有数据,如
BSSID 接入点的地址。
SSID 网络名称。
功能描述接入点支持的身份验证,密钥管理和加密方案。
频率客户端与接入点通信的频道的频率(MHz)。
级别检测到的信号电平,单位为dBm。
timestamp 上次查看此结果时的时间同步函数(tsf)时间戳(以微秒为单位)。
关于wifi设备。 如果您需要更多与编码相关的内容,我想我可以帮助您...
示例代码
WifiManager wManager;
List<ScanResult> wifiList;
wManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
// Inside BroadcastReceiver()
wifiList = wManager.getScanResults();
for (int i=0; i<wifiList.size(); i++){
ScanResult scanresult = wifiList.get(i);
System.out.println("SSID: "+ssid);
System.out.println("RSSI: "+scanresult.level);
System.out.println("Frequency: "+scanresult.frequency);
System.out.println("BSSID: "+scanresult.BSSID);
System.out.println("Capability: "+scanresult.capabilities);
}
还要检查BroadcastReceiver()。
答案 1 :(得分:3)
我可以想到这样做的一种方法是将您的设备作为wifi热点并使用一些隐藏的api来发现设备。您基本上是在尝试模仿接入点。
否则每个设备都需要一些p2p框架 - 无论是wifi直接还是其他一些框架,如alljoyn或三星和弦,这有助于对等发现