Android WiFi 热点 Channel 信道 和 Frequency 频率 转换总结
文章目录
- [Android WiFi 热点 Channel 信道 和 Frequency 频率 转换总结](#Android WiFi 热点 Channel 信道 和 Frequency 频率 转换总结)
-
- [一、标准计算公式(IEEE 802.11 规范)](#一、标准计算公式(IEEE 802.11 规范))
-
- [1. 2.4GHz ISM 频段](#1. 2.4GHz ISM 频段)
- [2. 5GHz U-NII 频段](#2. 5GHz U-NII 频段)
- [二、2.4GHz 信道 - 频率完整对照表](#二、2.4GHz 信道 - 频率完整对照表)
- [三、5GHz 信道 - 频率完整对照表 + DFS 标记](#三、5GHz 信道 - 频率完整对照表 + DFS 标记)
-
- UNII-1(Non-DFS,优先热点使用)
- [UNII-2A(DFS 信道)](#UNII-2A(DFS 信道))
- [UNII-2C(DFS 信道)](#UNII-2C(DFS 信道))
- [UNII-3(Non-DFS 5.8G 高频段)](#UNII-3(Non-DFS 5.8G 高频段))
- [四、Android 开发关键注意事项(SoftAP 热点专用)](#四、Android 开发关键注意事项(SoftAP 热点专用))
-
- [1. 信道与频段 band 映射(cmd wifi start-softap 参数)](#1. 信道与频段 band 映射(cmd wifi start-softap 参数))
- [2. frequency 与 channel 在 Android 命令的区别](#2. frequency 与 channel 在 Android 命令的区别)
- [3. DFS 信道在热点上的限制](#3. DFS 信道在热点上的限制)
- [4. 调试命令(验证当前管制域可用信道)](#4. 调试命令(验证当前管制域可用信道))
- [5. 常见踩坑点](#5. 常见踩坑点)
- 五、快速查询工具公式-代码
- 六、热点异常分析示例
- 七、术语总结
Android 热点日志分析过程中,有些信道值channel可能导致热点打不开,
有些logcat只打印了频率frequency的值,所以需要了解转换关系。
一、标准计算公式(IEEE 802.11 规范)
1. 2.4GHz ISM 频段
公式:
中心频率 Freq = 2407 + 5 × Channel
信道 Channel = (Freq - 2407) ÷ 5
✅ 示例验证:
- Channel 6 → 2407 + 5×6 = 2432 MHz
- Channel 1 → 2407+5×1 = 2412 MHz
⚠️ 注意:信道 14 仅日本支持(2484MHz),绝大多数国家禁用
2. 5GHz U-NII 频段
公式:
中心频率 Freq = 5000 + 5 × Channel
信道 Channel = (Freq - 5000) ÷ 5
✅ 示例验证:
- Channel 44 → 5000 + 5×44 = 5220 MHz
- Channel 48 → 5000 + 5×48 = 5240 MHz(日志常用 5G 非 DFS 信道)
重要规则:5G 信道常用步长为 4(36/40/44/48、52/56/60/64),源于 4 个信道捆绑 80MHz 带宽,数学公式依然 5MHz 基础步进
二、2.4GHz 信道 - 频率完整对照表
表格
| 信道 Channel | 中心频率 Freq (MHz) | 中国大陆 (CN) | 北美 US/FCC | 欧盟 EU/ETSI | 日本 JP | 备注 |
|---|---|---|---|---|---|---|
| 1 | 2412 | √ | √ | √ | √ | 通用 |
| 2 | 2417 | √ | √ | √ | √ | 通用 |
| 3 | 2422 | √ | √ | √ | √ | 通用 |
| 4 | 2427 | √ | √ | √ | √ | 通用 |
| 5 | 2432 | √ | √ | √ | √ | 通用 |
| 6 | 2437 | √ | √ | √ | √ | 通用,首选非重叠信道 |
| 7 | 2442 | √ | √ | √ | √ | 通用 |
| 8 | 2447 | √ | √ | √ | √ | 通用 |
| 9 | 2452 | √ | √ | √ | √ | 通用 |
| 10 | 2457 | √ | √ | √ | √ | 通用 |
| 11 | 2462 | √ | √ | √ | √ | 通用,首选非重叠信道 |
| 12 | 2467 | √(STA) ❌(SoftAP 热点) | 低功率可用 | √ | √ | Android 热点经常被厂商策略屏蔽 |
| 13 | 2472 | √(STA) ❌(SoftAP 热点) | 低功率可用 | √ | √ | 国内热点默认无法启用(你日志出现 total=11 来源) |
| 14 | 2484 | ❌ | ❌ | ❌ | √ | 仅 802.11b,禁止 g/n/ac |
📌 结合日志:
Regulatory channel list for band 2Ghz : total=11 non-DFS=11 DFS=0原因:Android SoftAP 热点策略主动剔除信道 12、13,仅保留 1~11,不是国标强制,是平台厂商 wlan regulatory 配置。
补充:2.4G不存在 DFS 信道,所有信道均为 non-DFS。
三、5GHz 信道 - 频率完整对照表 + DFS 标记
区分:非 DFS 信道(无需雷达检测) / DFS 信道(启用前必须 CAC 雷达监听)
UNII-1(Non-DFS,优先热点使用)
| 信道 Channel | 频率 Freq (MHz) | DFS 标识 | CN | US | EU | JP |
|---|---|---|---|---|---|---|
| 36 | 5180 | 非 DFS | √ | √ | √ | √ |
| 40 | 5200 | 非 DFS | √ | √ | √ | √ |
| 44 | 5220 | 非 DFS | √ | √ | √ | √ |
| 48 | 5240 | 非 DFS | √ | √ | √ | √ |
下面两个DFS信道基本不用管,安卓设备默认都是不支持的。
UNII-2A(DFS 信道)
| 信道 Channel | 频率 Freq (MHz) | DFS 标识 | CN | US | EU | JP |
|---|---|---|---|---|---|---|
| 52 | 5260 | DFS | √ | √ | √ | √ |
| 56 | 5280 | DFS | √ | √ | √ | √ |
| 60 | 5300 | DFS | √ | √ | √ | √ |
| 64 | 5320 | DFS | √ | √ | √ | √ |
UNII-2C(DFS 信道)
| 信道 Channel | 频率 Freq (MHz) | DFS 标识 | CN | US | EU | JP |
|---|---|---|---|---|---|---|
| 100 | 5500 | DFS | ❌ | √ | √ | √ |
| 104 | 5520 | DFS | ❌ | √ | √ | √ |
| 108 | 5540 | DFS | ❌ | √ | √ | √ |
| 112 | 5560 | DFS | ❌ | √ | √ | √ |
| 116 | 5580 | DFS | ❌ | √ | √ | √ |
| 120 | 5600 | DFS | ❌ | √ | √ | √ |
| 124 | 5620 | DFS | ❌ | √ | √ | √ |
| 128 | 5640 | DFS | ❌ | √ | √ | √ |
| 132 | 5660 | DFS | ❌ | √ | √ | √ |
| 136 | 5680 | DFS | ❌ | √ | √ | √ |
| 140 | 5700 | DFS | ❌ | √ | √ | √ |
| 144 | 5720 | DFS | ❌ | √ | √ | √ |
UNII-3(Non-DFS 5.8G 高频段)
| 信道 Channel | 频率 Freq (MHz) | DFS 标识 | CN | US | EU | JP |
|---|---|---|---|---|---|---|
| 149 | 5745 | 非 DFS | √ | √ | √ | √ |
| 153 | 5765 | 非 DFS | √ | √ | √ | √ |
| 157 | 5785 | 非 DFS | √ | √ | √ | √ |
| 161 | 5805 | 非 DFS | √ | √ | √ | √ |
| 165 | 5825 | 非 DFS | √ | √ | ❌ | √ |
📌 国内 Android 热点开发重点:
中国大陆 CN 国家码:禁用 100~144 全部 DFS 信道
对应日志
Regulatory channel list for band 5Ghz : total=9 non-DFS=9 DFS=0可用信道:36,40,44,48,149,153,157,161,165(合计 9 个,和日志完全吻合)
四、Android 开发关键注意事项(SoftAP 热点专用)
1. 信道与频段 band 映射(cmd wifi start-softap 参数)
- band=1 → 2.4GHz
- band=2 → 5GHz
不要混淆:很多驱动内部定义 band=3 代表 5GHz,属于平台私有映射,命令行参数标准不使用 band=3
2. frequency 与 channel 在 Android 命令的区别
cmd wifi start-softap 支持两种传参:
- 指定
channel=XX:框架内部自动换算中心频率 - 指定
frequency=XXXX:直接使用中心频点,框架反向换算信道
底层 hostapd 最终接收中心频率参数
示例完整热点命令(5G 信道 48)
cmd wifi start-softap MyHotspot wpa2 12345678 -b 5 -c 48
等价于
cmd wifi start-softap MyHotspot wpa2 12345678 -b 5 -f 5240
上面命令 -c -f 其实没有,测试了,信道值是随机的,估计系统源码已经没有完善这个逻辑。
3. DFS 信道在热点上的限制
-
Android SoftAP大部分平台不支持自动 CAC 雷达检测,热点无法正常拉起 DFS 信道;
-
开发调试热点优先选择非 DFS 信道(36/40/44/48、149~165);
-
切换国家码会动态刷新可用信道列表,命令设置国家码:
//获取国家码
cmd wifi get-country-code
//设置国家码
cmd wifi force-country-code enabled CN
4. 调试命令(验证当前管制域可用信道)
# 查询热点AP允许信道信息
cmd wifi get-allowed-channel
具体显示如下;
console:/ # cmd wifi get-allowed-channel
Allowed ch in STA mode: //tation 站点模式,日常手机连接家里路由器
2412 2417 2422 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 5180 5200 5220 5240 5260 5280 5300 5320
Allowed ch in SAP mode: //Soft AP 软件接入点,本机发射热点
2412 2417 2422 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 5180 5200 5220 5240
Allowed ch in WiFi-Direct GC mode: // Group Client,直连客户端
2412 2417 2422 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 5180 5200 5220 5240
Allowed ch in WiFi-Direct GO mode: //Group Owner,直连群主(P2P 热点)
2412 2417 2422 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 5180 5200 5220 5240
Allowed ch in WiFi-Aware mode: //Neighbor Awareness Networking 邻居感知网络
2412 2417 2422 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 5180 5200 5220 5240
Allowed ch in TDLS mode:
console:/ # //Tunnel Direct Link Setup 隧道直连链路
启动 SoftAP 热点时,系统读取的是 SAP mode 频点清单 。
上面显示的数据并不正确,本机设备切换到CN或者US,36G应该支持很多个的,上面只打印了4个;
估计是系统源码没判断正常。
5. 常见踩坑点
- ❌ 直接硬编码信道 12、13 开启 2.4G 热点:CN 国家码下 ApConfigUtil 会过滤,热点启动失败;
- ❌ 使用 5G 信道 100~144 开启热点:国内管制域直接剔除;
- ❌ 混淆信道号和频率:日志 ApConfigUtil 打印 frequency,不要直接填入 channel 参数;
- ACS 自动信道选择:部分设备不支持 ACS,日志打印
Ignoring Allowed ACS channels since ACS is not supported,必须手动指定信道。
五、快速查询工具公式-代码
//2.4G 信道→频率
public static int channel2Freq2G(int ch){
return 2407 + 5 * ch;
}
public static int freq2Channel2G(int freq){
return (freq - 2407)/5;
}
//5G 信道→频率
public static int channel2Freq5G(int ch){
return 5000 + 5 * ch;
}
public static int freq2Channel5G(int freq){
return (freq - 5000)/5;
}
六、热点异常分析示例
比如埃及EG不支持5G的149,我先把热点信道值设置成149,切换到埃及EG语言就会打开失败:
08-04 10:20:24.114 949 1325 D WifiActiveModeWarden: Starting SoftApModeManager config = null
//打印channel为149,国家码为埃及EG
08-04 10:20:24.207 949 1325 D SoftApManager[wlan1]: startSoftAp: channels {2=149} iface wlan1 country EG
08-04 10:20:24.255 949 2712 W HostapdHalAidlImp: Failure on iface wlan1, instance: wlan1
08-04 10:20:24.329 949 1325 E HostapdHalAidlImp: IHostapd.addAccessPoint failed: android.os.ServiceSpecificException: (code 1)
//热点打开失败
08-04 10:20:24.330 949 1325 E WifiNative: Failed to add softAp
08-04 10:20:24.330 949 1325 E SoftApManager[wlan1]: Soft AP start failed
//关闭节点
08-04 10:20:24.374 949 1325 I WifiNative: Successfully torn down Iface:{Name=wlan1,Id=6,Type=AP}
08-04 10:20:24.374 949 1325 I WifiNative: Successfully initiated teardown for iface=wlan1
08-04 10:20:24.374 949 1325 D SoftApManager[wlan1]: Soft AP is stopped
//热点打开失败的其他信息
08-04 10:20:24.374 949 1325 E WifiActiveModeWarden: SoftApManager start failed!SoftApManager{id=929992 iface=wlan1 role=ROLE_SOFTAP_TETHERED}
08-04 10:20:24.383 949 1325 D ApConfigUtil: Filtered channel list for band 2Ghz : 2412,2417,2422,2427,2432,2437,2442,2447,2452,2457,2462
08-04 10:20:24.391 949 1325 D ApConfigUtil: Filtered channel list for band 5Ghz : 5180,5200,5220,5240
08-04 10:20:24.392 949 1325 W HostapdHalAidlImp: Handle IHostapd/IHostapd died.
打开失败会有关闭热点的日志。
从上层日志估计很难看出哪里导致热点失败的原因,
但是看主要日志其实可以简单确认:
//打印channel为149,国家码为埃及EG
08-04 10:20:24.207 949 1325 D SoftApManager[wlan1]: startSoftAp: channels {2=149} iface wlan1 country EG
08-04 10:20:24.383 949 1325 D ApConfigUtil: Filtered channel list for band 2Ghz : 2412,2417,2422,2427,2432,2437,2442,2447,2452,2457,2462
08-04 10:20:24.391 949 1325 D ApConfigUtil: Filtered channel list for band 5Ghz : 5180,5200,5220,5240
后面打印目前的国家码语言只支持四个信道范围,换算后分别是:36、40、44、48;
其他语言是不支持的,所以打开失败。
如果要详细确认,可以查看整个logcat日志,具体看看底层日志的 hostapd 打印:
//热点节点加载
08-04 10:37:09.267 11112 11112 I hostapd : Add interface 'wlan1'
//这里打印当前支持的信道信息,需要慢慢看
08-04 10:37:09.303 11112 11112 D hostapd : nl80211: Mode IEEE 802.11g: 2412 2417 2422 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 2484[DISABLED]
08-04 10:37:09.303 11112 11112 D hostapd : nl80211: Mode IEEE 802.11a: 5170[DISABLED] 5180 5190[DISABLED] 5200 5210[DISABLED] 5220 5230[DISABLED] 5240 5250[DISABLED] 5260[NO_IR][RADAR] 5270[DISABLED] 5280[NO_IR][RADAR] 5290[DISABLED] 5300[NO_IR][RADAR] 5310[DISABLED] 5320[NO_IR][RADAR] 5500[DISABLED] 5510[DISABLED] 5520[DISABLED] 5530[DISABLED] 5540[DISABLED] 5550[DISABLED] 5560[DISABLED] 5570[DISABLED] 5580[DISABLED] 5590[DISABLED] 5600[DISABLED] 5610[DISABLED] 5620[DISABLED] 5630[DISABLED] 5640[DISABLED] 5650[DISABLED] 5660[DISABLED] 5670[DISABLED] 5680[DISABLED] 5690[DISABLED] 5700[DISABLED] 5710[DISABLED] 5720[DISABLED] 5745[DISABLED] 5755[DISABLED] 5765[DISABLED] 5775[DISABLED] 5785[DISABLED] 5795[DISABLED] 5805[DISABLED] 5815[DISABLED] 5825[DISABLED] 5835[DISABLED] 5845[DISABLED] 5855[DISABLED] 5865[DISABLED] 5875[DISABLED] 5885[DISABLED] 5905[DISABLED]
08-04 10:37:09.303 11112 11112 D hostapd : nl80211: Mode IEEE 802.11b: 2412 2417 2422 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 2484[DISABLED]
//这里就是报错的关键信息,149信道对应的 5745 frequency 的值不支持
08-04 10:37:09.303 11112 11112 I hostapd : Frequency 5745 (primary) not allowed for AP mode, flags: 0x871
08-04 10:37:09.303 11112 11112 E hostapd : Primary frequency not allowed
//热点节点关闭
08-04 10:37:09.386 11112 11112 I hostapd : Remove interface 'wlan1'
热点日志中,有些异常打印并没有打印channel的值,但是有打印frequency的值,也是可以拿来分析确认的。
七、术语总结
-
Non-DFS 信道:无需雷达检测,Android 热点首选,启动速度快;安卓设备都是默认这个。
-
DFS 信道:与气象雷达共享频谱,设备需要 60s CAC 监听,国内热点基本不可用;
-
Regulatory domain(管制域):由 wifi 国家码 (country code) 决定可用信道列表,ApConfigUtil 依据该表过滤信道;
-
SoftAP 信道过滤 = 国标管制域 + 厂商平台策略双重限制。
-
频率Frequency的值和信道channel的对应值:
2.4GFreq = 2407 + 5 × Channel ;5GFreq = 5000 + 5 × Channel;
2.4GChannel = (Freq - 2407) ÷ 5;5GChannel = (Freq - 5000) ÷ 5
Frequency的值:2.4G是2412起 对应1,5G是5180起对应36;
大于5000的Frequency值就是5G的频率值;