Android WiFiManager.getScanResults () не возвращает скрытые данные SSID - PullRequest
4 голосов
/ 14 октября 2011

Я работаю над проектом 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();
            // ...
        }
    }
}   

Спасибо!

Ответы [ 2 ]

3 голосов
/ 03 января 2012

Вот как работает Android.Никакие скрытые идентификаторы SSID не передаются приложениям во время сканирования.

Это ошибка, о которой сообщалось много лет назад, и о которой даже не было замечено.

http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&sqi=2&ved=0CC4QFjAB&url=http%3A%2F%2Fcode.google.com%2Fp%2Fandroid%2Fissues%2Fdetail%3Fid%3D10305&ei=mf8CT-rREOTf0QH94LS3Ag&usg=AFQjCNECvPs0QfS2MERv4jQmL7CYSsR95A&sig2=W0DAy5n32wzl0sAbo5E42g

2 голосов
/ 14 октября 2011

видя это сеть :

Для подключения к скрытому SSID телефон должен иметь WifiConfiguration.hiddenSSID установлен в true. В настоящее время нет кажется, способ включить это через телефонный интерфейс, но есть Обходной путь благодаря stewart.wayne.scott. Обратите внимание, что «MySSID» должен быть Название скрытого SSID. По сути вам нужно запустить следующее код на вашем телефоне. На данный момент нет готового APK, который делает это, так что это требует создания программы с Android SDK, скомпилировать и запустить на телефоне.

Тогда вы должны понять, что это может быть трудно сделать (я не скажу, что это невозможно, но почти). Возможно, с этой информацией вы сможете что-то сделать.

...