我正在开发一款应用程序,允许使用在大型公共场所(如酒店和医院)发出wifi信号的硬件设备进行室内导航。每个位置都有多个设备,每个设备都是唯一的,这样我们就可以识别设备/人的确切位置。
为此我不希望用户连接到wifi,如果只能扫描网络,这可能确定移动设备最接近的当前wifi信标将完成工作。我决定使用Android的WifiManager来执行任务:
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifi.setWifiEnabled(true);
wifi.startScan() ;
List<ScanResult> mScanResults = wifi.getScanResults();
String s = "" ;
for(ScanResult result: mScanResults){
Log.d("Wifi", result.SSID) ;
}
结果的任何属性似乎都不适合用作Wifi Beacon的 UID ,我有两个问题:
a)我们可以为此目的使用类似BSSID的东西吗?
b)我可以写自己的wifi经理课,然后以某种方式协商与wifi的握手,它只是告诉我没有连接的是谁?如果是这样,请分享资源以便做同样的事情。