在android中以睡眠模式搜索可用的wifi网络

时间:2015-07-28 06:13:16

标签: android android-wifi wifimanager galaxy-tab

我想检查可用的网络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网络的可能性是怎样的呢?

0 个答案:

没有答案