我想检查可用的网络bssids“只检查无连接”,因为我使用此代码
wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
wifiManager.startScan();
IntentFilter filter = new IntentFilter();
filter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
registerReceiver(myrec, filter);
------------------------
private BroadcastReceiver myrec=new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(tag+" myrec","scan complete");
}
};
在我测试的许多手机中它的工作正常,但在睡眠模式下,galaxytab4 “smt231”无法正常工作,在正常模式下需要很长时间才能完成扫描“超过2分钟”< / strong>但是当我去设置&gt; wifi我的brodcast立即注册。
任何人都可以帮我解决这个问题。
更新
我找到了wifilock,现在我的代码是
wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
_wifiLock = wifiManager.createWifiLock(WifiManager.WIFI_MODE_SCAN_ONLY, this.getClass().getName() + ".WIFI_LOCK");
_wifiLock.setReferenceCounted(true);
if(!_wifiLock.isHeld()){
_wifiLock.acquire();
}
wifiManager.startScan();
-----------------
private BroadcastReceiver myrec=new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(tag+" myrec","scan complete");
}
};
但仍未在睡眠模式下工作 我确信运行我的代码,但扫描reciver广播永远不会在睡眠模式下运行。
有趣的是当你打开wifi时,即使你的手机处于睡眠模式,当你进入已知的wifi网络范围时,它将连接到网络并收到电子邮件等通知。那么在睡眠模式下检查wifi网络的可能性是怎样的呢?