首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >仅在2.4 for频段扫描wifi信号

仅在2.4 for频段扫描wifi信号
EN

Stack Overflow用户
提问于 2013-06-27 22:23:41
回答 4查看 5.2K关注 0票数 7

我需要扫描可用的Wi-Fi信号和它们的强度。我使用的是wifiManager.startScan();和异步wifiManager.getScanResult();

在不支持5 5GHz频段的设备上,大约需要500ms才能得到结果,在支持5 5GHz频段的设备上,需要大约2秒,这对我来说太多了。我猜1.5秒的延迟是为了搜索整个5 5GHz频段。

有没有什么方法可以告诉设备只在2.4 get频段进行扫描,或者有任何其他方法可以更快地获得结果(例如通过NDK)?我搜索了整个网络,什么也没找到,所以我想这是唯一的方法。

谢谢。

EN

回答 4

Stack Overflow用户

发布于 2013-09-03 15:10:08

有没有什么方法可以告诉设备只在2.4 the频段扫描

我认为没有办法做到这一点。

您所能做的就是调用startScan()并等待结果。

票数 2
EN

Stack Overflow用户

发布于 2014-11-20 18:57:58

适用至果子糖

代码语言:javascript
运行
复制
/**
 * 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。

代码片段:

代码语言:javascript
运行
复制
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();
票数 2
EN

Stack Overflow用户

发布于 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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17345788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档