WifiManager.getScanResults () - esclarecimentos (varreduras automáticas, sono etc)
Eu gostaria de alguns esclarecimentos sobre o comportamento deWifiManager.getScanResults()
, nomeadamente:
Quando a conexão sem fio está ativada
O Android procura pontos de acesso em um intervalo fixo? Alguém pode consultar / alterar o intervalo? Alguém pode consultar a hora da última varredura? Para uma discussão, veja istorespondaO que acontece quando o rádio sem fio é desligado (dorme) - enquanto o Wi-Fi ainda está ativado -getScanResults()
continuar retornando os últimos resultados da varredura? Como se saberia se é hora destartScan()
?Quando a rede sem fio está desativada
getScanResults()
retornaria os últimos resultados da varredura? Ou uma lista vazia? Ounull
(ele retorna nulo às vezes e isso não é tratado por 90% dos snippets postados no SO)?A resposta para 1 seria verdade mesmo depois de um reboot (o telefone arrancar com wifi desligado)?A razão que eu pergunto é que eu preciso para obter a lista dos pontos de acesso disponíveis periodicamente e eu prefiro chamargetScanResults()
de uma vez, do queWifiManager.startScan()
e depoisgetScanResults()
se eu realmente não tenho que - como isso envolve a aquisição de bloqueios wi-fi e afins e é bastante sutil. Eu também não sei o quanto o nível da API e o hardware do telefone entram em ação.
Para uma boa discussão das dificuldades, veja istoresponda