Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android startscan()在手机进入空闲状态10分钟后有结果_Android_Wifi_Wifimanager_Network Scan - Fatal编程技术网

Android startscan()在手机进入空闲状态10分钟后有结果

Android startscan()在手机进入空闲状态10分钟后有结果,android,wifi,wifimanager,network-scan,Android,Wifi,Wifimanager,Network Scan,我尝试每2分钟扫描一次wifi网络。我正在使用这项服务。当手机在呼叫startscan()后处于“活动”或“正在使用”状态时,我会在6秒内获得SCAN\u RESULTS\u AVAILABLE\u ACTION。所以我可以定期扫描WIFI。但在手机有一段时间(10分钟)未被任何人触摸后,startscan()停止“工作”,只有在10分钟后才能得到结果。有人经历过这种情况吗?据我所知,我找到了解决办法——这是因为。 您可以使用以下选项设置wifi设备永不入睡: Settings.System.p

我尝试每2分钟扫描一次wifi网络。我正在使用这项服务。当手机在呼叫
startscan()
后处于“活动”或“正在使用”状态时,我会在6秒内获得
SCAN\u RESULTS\u AVAILABLE\u ACTION
。所以我可以定期扫描WIFI。但在手机有一段时间(10分钟)未被任何人触摸后,startscan()停止“工作”,只有在10分钟后才能得到结果。有人经历过这种情况吗?

据我所知,我找到了解决办法——这是因为。 您可以使用以下选项设置wifi设备永不入睡:

Settings.System.putInt(getContentResolver(),
              Settings.System.WIFI_SLEEP_POLICY, 
              Settings.System.WIFI_SLEEP_POLICY_NEVER);
请确保您在
AndroidManifest.xml
文件中添加了此权限:

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
别忘了发布它,更多关于WifiLock的信息 还要定义此权限:

<uses-permission android:name="android.permission.WAKE_LOCK"/>

然后在您的broadcastreceiver获得包含已启用的
WIFI\u STATE\u的操作后进行扫描
extra

+1 nice-请参阅我关于
getScanResults()的问题。另外-假设您启用了无线,那么您希望在扫描后重新显示它-如果用户在您扫描时启用了它(因此您不应该禁用它),该怎么办?有办法知道吗?
<uses-permission android:name="android.permission.WAKE_LOCK"/>
WifiManager wm = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
if(wm.isWifiEnabled() == false) {
    wm.setWifiEnabled(true);
}