Старые результаты от Android wifi.getScanResults () - PullRequest
3 голосов
/ 17 июня 2011

На моем Droid 2, wifi.getScanResults (), кажется, возвращает старые значения в течение короткого времени.

Это означает, что пока я дома, wifi.getScanResults () покажет мою домашнюю сеть. Если я поеду по улице на расстоянии нескольких миль, wifi.getScanResults () все равно покажет мою домашнюю сеть для первых 1 или 2 попыток. С третьей попытки моя домашняя сеть исчезла.

Вопрос: Есть ли способ получить только самые последние wifi.getScanResults ()?

Возможные варианты:

  • Если уровень ScanResult равен минимум, предположим, что это из спектр.
  • Как-нибудь очистить ScanResults,
    используя недокументированный API.

У меня есть такой код:

context.registerReceiver(this, new IntentFilter(
            WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
wifi.startScan();

...

if (intent.getAction().equalsIgnoreCase(
            WifiManager.SCAN_RESULTS_AVAILABLE_ACTION))
        {
            List<ScanResult> results = wifi.getScanResults();
        }

Ответы [ 2 ]

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

Решение, которое я нашел до сих пор, состоит в том, чтобы выключить WiFi и затем включить его снова, так как это приводит к совершенно новому сканированию:

wifi.setWifiEnabled(false);
wifi.setWifiEnabled(true);

Добавляет немного задержки, но работает (находит много точек доступа рядом со мной).

1 голос
/ 17 июня 2011

Вы получите последний результат. Если он устарел, вы можете начать новое сканирование и установить BroadCastReceiver , чтобы получить новый список.

...