我正在开发一个Android项目来扫描我们办公室的本地WiFi环境。简短的故事是我们想要找到不属于那里的接入点。
问题:Android似乎没有返回有关隐藏SSID的接入点的信息。有谁知道这是怎么做的?在其他平台上,扫描结果集通常包含有关具有隐藏SSID的接入点的所有常规数据,减去(显然)其SSID。
有谁知道在Android上如何做到这一点?
我的代码看起来像我见过的例子:
public class Scanner {
private WifiManager mainWifi;
private WifiReceiver receiverWifi;
// ...
public Scanner(Context context){
mainWifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
receiverWifi = new WifiReceiver();
context.registerReceiver(receiverWifi, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
mainWifi.startScan();
}
// ...
class WifiReceiver extends BroadcastReceiver {
public void onReceive(Context c, Intent intent) {
List<ScanResult> scanResultsList = mainWifi.getScanResults();
// ...
}
}
}
谢谢!
答案 0 :(得分:3)
这就是android的工作方式。扫描期间没有隐藏的SSID传递给应用程序。
这是一个很久以前就已经报道的错误,甚至从来没有被人看过。
答案 1 :(得分:2)
看到这个web:
要连接到隐藏的SSID,手机必须具有 WifiConfiguration.hiddenSSID设置为true。目前还没有 似乎是一种通过手机用户界面启用此功能的方法,但有一个 解决方法感谢stewart.wayne.scott。请注意“MySSID”应该是 隐藏SSID的名称。基本上你需要运行以下内容 手机上的密码。目前还没有预制的APK 这个,所以需要用Android SDK创建一个程序, 编译它,并在手机上运行它。
然后你必须明白这可能很难做到(我不会说不可能,但差不多)。也许有了这些信息,你可以做点什么。