如何停止安卓系统的wifi扫描?

10

使用wifiMgr.startScan()启动的wifi扫描能否停止?我查阅了一些帖子并阅读到使用线程在每个结果传递之间给出时间间隔的方法。但如果我想完全停止这个过程,我该怎么做?


我的猜测是它只运行了一小段时间然后返回结果,它可能不会无限运行。但这只是一个猜测。 - Falmarri
1
不,它会持续运行。我没有测量时间间隔,但是阅读了这个源代码 http://hi-android.info/src/com/android/settings/wifi/WifiSettings.java.html 之后,我认为有一些参数会影响更新间隔。所以也许完全停止这个进程是不可能的。希望我的理解是正确的。 - springrolls
2个回答

17

几天前我找到了答案。只需注销接收器即可。我不知道这是否是最好的方法,但它有效。


你尝试过使用SO的搜索功能吗?我找到了这个链接:https://dev59.com/62w15IYBdhLWcg3wkMnz :-) - springrolls
3
我不认为这是正确的。注销接收器仅意味着您正在忽略扫描结果,而不是停止扫描。如果您重新注册接收器而没有再次调用startScan,则会看到扫描结果仍在流入。(至少这是我在4.3设备上看到的) - wirbly
Wirbly,你是正确的。我在stackoverflow上发布了一个关于它的问题http://stackoverflow.com/questions/29390414/android-wifimanager-and-scanning-battery-performance - DritanX
不能解决我的问题。我想要停止扫描,因为它似乎会与蓝牙LE设备的扫描产生冲突。注销接收器只能停止一个结果的获取!扫描仍在继续。 - Brian Reinhold

0

我发现abortBroadcast()有效。奇怪的是,我一开始不需要停止它,因为每次调用startscan时它只运行一次。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接