我希望我的应用程序在附近有wifi时“做点什么”。但手机没有连接到它。我没有密码。例如,如果可以访问wifi University0001,我想要静音我的手机,但我没有密码进入University0001。
有没有办法让一个广播接收器在新的(未连接的)ssid到来时触发? 我不想有一个“计时器”来定期检查新的SSID。我要求接收器在新网络出现时触发,然后检查我想要的那个。
我希望能够清楚。 感谢
答案 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网络 - 那么您将无法选择,只能定期自行触发扫描......
小心:
从接收器执行长时间操作(例如网络请求......),只要接收到的是一个糟糕的方法 - 你将非常快地耗尽用户电池。