我需要扫描可用的Wi-Fi信号和它们的强度。我使用的是wifiManager.startScan();
和异步wifiManager.getScanResult();
。
在不支持5 5GHz频段的设备上,大约需要500ms才能得到结果,在支持5 5GHz频段的设备上,需要大约2秒,这对我来说太多了。我猜1.5秒的延迟是为了搜索整个5 5GHz频段。
有没有什么方法可以告诉设备只在2.4 get频段进行扫描,或者有任何其他方法可以更快地获得结果(例如通过NDK)?我搜索了整个网络,什么也没找到,所以我想这是唯一的方法。
谢谢。
发布于 2013-09-03 15:10:08
有没有什么方法可以告诉设备只在2.4 the频段扫描
我认为没有办法做到这一点。
您所能做的就是调用startScan()
并等待结果。
发布于 2014-11-20 18:57:58
适用至果子糖
/**
* Auto settings in the driver. The driver could choose to operate on both
* 2.4 GHz and 5 GHz or make a dynamic decision on selecting the band.
* @hide
*/
public static final int WIFI_FREQUENCY_BAND_AUTO = 0;
/**
* Operation on 5 GHz alone
* @hide
*/
public static final int WIFI_FREQUENCY_BAND_5GHZ = 1;
/**
* Operation on 2.4 GHz alone
* @hide
*/
public static final int WIFI_FREQUENCY_BAND_2GHZ = 2;
使用WifiManager.java的上述常量部分,设置所需的频带。我们可以使用setFrequencyBand接口设置频率(整型模式,布尔持久化)。这些是隐藏的API。
代码片段:
WifiManager wm = (WifiManager)getSystemService(Context.WIFI_SERVICE);
// To scan only 2.4 GHz Frequency band
// true, if this needs to be remembered
wm.setFrequencyBand(2, false);
// Start scan.
wm.startScan();
// To get the frequency band used.
int band = wm.getFrequncyBand();
发布于 2013-10-04 13:51:07
请求者配置文件提供了显式声明要扫描可用网络通道范围的选项。如果你的设备使用wpa_supplicant,那么在配置文件中你可以像下面这样定义扫描频率。
scan_freq:要扫描的频率列表
有关更多信息,请查看下面提到的链接中的上述文本。
请访问http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf。
https://stackoverflow.com/questions/17345788
复制相似问题