Android startscan()在手机进入空闲状态10分钟后有结果
我尝试每2分钟扫描一次wifi网络。我正在使用这项服务。当手机在呼叫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
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);
}