无需连接即可检测附近的WiFi

时间:2014-01-18 09:48:48

标签: android wifi

我希望我的应用程序在附近有wifi时“做点什么”。但手机没有连接到它。我没有密码。例如,如果可以访问wifi University0001,我想要静音我的手机,但我没有密码进入University0001。

有没有办法让一个广播接收器在新的(未连接的)ssid到来时触发? 我不想有一个“计时器”来定期检查新的SSID。我要求接收器在新网络出现时触发,然后检查我想要的那个。

我希望能够清楚。 感谢

1 个答案:

答案 0 :(得分:3)

  

有没有办法让广播接收器在新的(未连接的)ssid出现时触发?

是的。

如果您的WIFI已启用,且您当前未连接到WIFI网络 - 系统会定期扫描可用的接入点。当它检测到新的可见接入点时,它将发送SCAN_RESULTS_AVAILABLE_ACTION广播。

你可以注册到该广播,当它收到时 - 从WifiManager获取扫描结果:

@Override
public void onReceive(Context context, Intent intent) {

    WifiManager wifiManager (WifiManager)context.getSystemService(Context.WIFI_SERVICE);    
    List<ScanResult> scanResults = wifiManager.getScanResults();
}

如果您已连接到WIFI网络 - 那么您将无法选择,只能定期自行触发扫描......

小心:

从接收器执行长时间操作(例如网络请求......),只要接收到的是一个糟糕的方法 - 你将非常快地耗尽用户电池。