Android13 wifi设置国家码详解
Android13 wifi设置国家码详解
文章目录
- Android13 wifi设置国家码详解
- 一、前言
- 二、设置wifi国家码相关代码
- 1、adb或者串口也能设置和获取当前国家码
- (1)查询命令的方式
- (2)获取和设置国家码的示例
- 2、Java代码设置国家码
- 3、获取当前语言
- 三、其他
- 1、小结
- 2、Android 使用adb操作WiFi连接扫描等相关指令
- 3、国家码字符串大全
- PS: 把每一天的烟火气,都酿成热爱的诗 .
一、前言
wifi设置国家码有啥用?国外产品有些地区的产品需要设置wifi国家码的。
-
场景:手机、平板等设备在不同国家 / 地区销售时,需符合当地无线电管理法规(如中国的 SRRC 认证、欧盟的 CE 认证、美国的 FCC 认证)。
-
需求:通过设置国家码,强制设备使用当地允许的 Wi-Fi 频段(如:
- 中国:2.4GHz 频段(1-13 信道),5GHz 频段(36-64、149-165 信道);
- 美国:2.4GHz(1-11 信道),5GHz(36-165 信道,含 DFS 信道);
- 日本:2.4GHz(1-14 信道))。
-
作用:避免因频段违规导致产品无法上市或面临法律风险。
简单的说就是不同国家的网络无线认证,需要设置支持哪些wifi信道和热点信道。
比如,日本目前不支持5G信道,那么出售日本的手机就需要支持设置日本语言后,
不能连接5G信道的wifi和热点,并且手机上也不能释放5G的热点。
设置国家码的作用就是让上层和底层都知道当前国家码的值,并且做成相应处理。
网上使用豆包等AI工具设置的国家码的代码都是不对的,可能是比较旧版本的Android代码的实现,
本文的设置国家码代码实现是基于Android11之后的,是目前的主流代码。
WifiManager.setCountryCode 在Android13 之后的代码是没有的,可以使用另外的方法。
本文主要介绍wifi国家码的设置相关内容。
关于设置国家码后如何适配认证,后续再介绍。
二、设置wifi国家码相关代码
1、adb或者串口也能设置和获取当前国家码
(1)查询命令的方式
255|console:/ # cmd wifi | grep country //获取国家码相关命令 get-country-code //获取当前国家码信息Gets country code as a two-letter stringforce-country-code enabled <two-letter code> | disabled //设置国家码Sets country code to <two-letter code> or left for normal valueor '00' for forcing to world mode country code
console:/ #
cmd wifi 有大部分WifiManager的接口方法,比如Wifi 开关,连接,热点开关等命令,有兴趣的可以自己看看。
(2)获取和设置国家码的示例
console:/ # cmd wifi get-country-code //获取当前国家码信息
Wifi Country Code = US
console:/ #
console:/ # cmd wifi force-country-code enabled JP //设置国家码,日本
console:/ # cmd wifi get-country-code
Wifi Country Code = JP
console:/ # cmd wifi force-country-code enabled CN //设置国家码,中国
console:/ # cmd wifi get-country-code
Wifi Country Code = CN
console:/ # cmd wifi force-country-code enabled DD //设置国家码,随便设
console:/ # cmd wifi get-country-code
Wifi Country Code = DD
console:/ #
上面可以看到随便设置国家码的字符都能生效,但是framework和底层会自己判断后执行具体操作。
2、Java代码设置国家码
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
//设置国家码
wifiManager.setOverrideCountryCode(String countryCode); //比如:"CN"
//获取国家码
String wifiCountry = wifiManager.getCountryCode();//当前系统语言的国家码
String countryCode = Locale.getDefault().getCountry(); //比如:US,CN
String countryName = Locale.getDefault().getDisplayCountry(); // 可读名称(如“中国”)
WifiManager设置wifi国家码,需要系统签名应用,并且声明权限:
android.Manifest.permission.MANAGE_WIFI_COUNTRY_CODE
那么什么时候设置国家码呢?
其实是在切换国家语言的时候进行设置就行。
3、获取当前语言
可以在监听到广播后获取当前国家码,然后设置wifi国家码;
切换国家语言的时候是有广播:Intent.ACTION_LOCALE_CHANGED;
String localeCountry = Locale.getDefault().getCountry();
上面代码返回的字符串,就是语言对应的国家码,wifi的国家码就是要设置这个字符串。
三、其他
1、小结
Android设置wifi国家码,可以通过cmd命令设置获取;
也可以通过Java代码WifiManager.setOverrideCountryCode的接口设置;
系统默认不会设置wifi的国家码,需要自己在接收语言切换广播
或者特定需求下获取当前语言的国家码和设置wifi国家码。
国家码字符串正规都是大写的,如果设置的是小写的字母,重新获取也是返回的大写字符串。
2、Android 使用adb操作WiFi连接扫描等相关指令
Android系统自带有组很强大的shell指令集,
这里记录下平时使用的cmd wifi 相关指令。
系统初期开发或者定位一下wifi、热点问题会比较有用。
https://blog.csdn.net/wenzhi20102321/article/details/140043930
3、国家码字符串大全
以下是 ISO 3166-1 alpha-2 标准的国家和地区代码列表(按字母顺序排列),包含250 个条目:
国家 / 地区代码表(带序号):
序号 | 代码 | 国家 / 地区名称(中文) | 国家 / 地区名称(英文) |
---|---|---|---|
1 | AD | 安道尔 | Andorra |
2 | AE | 阿拉伯联合酋长国 | United Arab Emirates |
3 | AF | 阿富汗 | Afghanistan |
4 | AG | 安提瓜和巴布达 | Antigua and Barbuda |
5 | AI | 安圭拉 | Anguilla |
6 | AL | 阿尔巴尼亚 | Albania |
7 | AM | 亚美尼亚 | Armenia |
8 | AO | 安哥拉 | Angola |
9 | AQ | 南极洲 | Antarctica |
10 | AR | 阿根廷 | Argentina |
11 | AS | 美属萨摩亚 | American Samoa |
12 | AT | 奥地利 | Austria |
13 | AU | 澳大利亚 | Australia |
14 | AW | 阿鲁巴 | Aruba |
15 | AX | 奥兰群岛 | Åland Islands |
16 | AZ | 阿塞拜疆 | Azerbaijan |
17 | BA | 波斯尼亚和黑塞哥维那 | Bosnia and Herzegovina |
18 | BB | 巴巴多斯 | Barbados |
19 | BD | 孟加拉国 | Bangladesh |
20 | BE | 比利时 | Belgium |
21 | BF | 布基纳法索 | Burkina Faso |
22 | BG | 保加利亚 | Bulgaria |
23 | BH | 巴林 | Bahrain |
24 | BI | 布隆迪 | Burundi |
25 | BJ | 贝宁 | Benin |
26 | BL | 圣巴泰勒米 | Saint Barthélemy |
27 | BM | 百慕大 | Bermuda |
28 | BN | 文莱达鲁萨兰国 | Brunei Darussalam |
29 | BO | 玻利维亚(多民族国) | Bolivia, Plurinational State of |
30 | BQ | 博内尔、圣尤斯特歇斯和萨巴 | Bonaire, Sint Eustatius and Saba |
31 | BR | 巴西 | Brazil |
32 | BS | 巴哈马 | Bahamas |
33 | BT | 不丹 | Bhutan |
34 | BV | 布维岛 | Bouvet Island |
35 | BW | 博茨瓦纳 | Botswana |
36 | BY | 白俄罗斯 | Belarus |
37 | BZ | 伯利兹 | Belize |
38 | CA | 加拿大 | Canada |
39 | CC | 科科斯(基林)群岛 | Cocos (Keeling) Islands |
40 | CD | 刚果民主共和国 | Congo, the Democratic Republic of the |
41 | CF | 中非共和国 | Central African Republic |
42 | CG | 刚果共和国 | Congo |
43 | CH | 瑞士 | Switzerland |
44 | CI | 科特迪瓦 | Côte d’Ivoire |
45 | CK | 库克群岛 | Cook Islands |
46 | CL | 智利 | Chile |
47 | CM | 喀麦隆 | Cameroon |
48 | CN | 中国 | China |
49 | CO | 哥伦比亚 | Colombia |
50 | CR | 哥斯达黎加 | Costa Rica |
51 | CU | 古巴 | Cuba |
52 | CV | 佛得角 | Cabo Verde |
53 | CW | 库拉索 | Curaçao |
54 | CX | 圣诞岛 | Christmas Island |
55 | CY | 塞浦路斯 | Cyprus |
56 | CZ | 捷克共和国 | Czech Republic |
57 | DE | 德国 | Germany |
58 | DJ | 吉布提 | Djibouti |
59 | DK | 丹麦 | Denmark |
60 | DM | 多米尼克 | Dominica |
61 | DO | 多米尼加共和国 | Dominican Republic |
62 | DZ | 阿尔及利亚 | Algeria |
63 | EC | 厄瓜多尔 | Ecuador |
64 | EE | 爱沙尼亚 | Estonia |
65 | EG | 埃及 | Egypt |
66 | EH | 西撒哈拉 | Western Sahara |
67 | ER | 厄立特里亚 | Eritrea |
68 | ES | 西班牙 | Spain |
69 | ET | 埃塞俄比亚 | Ethiopia |
70 | FI | 芬兰 | Finland |
71 | FJ | 斐济 | Fiji |
72 | FK | 福克兰群岛(马尔维纳斯) | Falkland Islands (Malvinas) |
73 | FM | 密克罗尼西亚联邦 | Federated States of Micronesia |
74 | FO | 法罗群岛 | Faroe Islands |
75 | FR | 法国 | France |
76 | GA | 加蓬 | Gabon |
77 | GB | 英国 | United Kingdom |
78 | GD | 格林纳达 | Grenada |
79 | GE | 格鲁吉亚 | Georgia |
80 | GF | 法属圭亚那 | French Guiana |
81 | GG | 根西岛 | Guernsey |
82 | GH | 加纳 | Ghana |
83 | GI | 直布罗陀 | Gibraltar |
84 | GL | 格陵兰 | Greenland |
85 | GM | 冈比亚 | Gambia |
86 | GN | 几内亚 | Guinea |
87 | GP | 瓜德罗普 | Guadeloupe |
88 | GQ | 赤道几内亚 | Equatorial Guinea |
89 | GR | 希腊 | Greece |
90 | GS | 南乔治亚岛和南桑威奇群岛 | South Georgia and the South Sandwich Islands |
91 | GT | 危地马拉 | Guatemala |
92 | GU | 关岛 | Guam |
93 | GW | 几内亚比绍 | Guinea-Bissau |
94 | GY | 圭亚那 | Guyana |
95 | HK | 中国香港特别行政区 | Hong Kong Special Administrative Region of China |
96 | HM | 赫德岛和麦克唐纳群岛 | Heard Island and McDonald Islands |
97 | HN | 洪都拉斯 | Honduras |
98 | HR | 克罗地亚 | Croatia |
99 | HT | 海地 | Haiti |
100 | HU | 匈牙利 | Hungary |
101 | ID | 印度尼西亚 | Indonesia |
102 | IE | 爱尔兰 | Ireland |
103 | IL | 以色列 | Israel |
104 | IM | 马恩岛 | Isle of Man |
105 | IN | 印度 | India |
106 | IO | 英属印度洋领地 | British Indian Ocean Territory |
107 | IQ | 伊拉克 | Iraq |
108 | IR | 伊朗伊斯兰共和国 | Iran, Islamic Republic of |
109 | IS | 冰岛 | Iceland |
110 | IT | 意大利 | Italy |
111 | JE | 泽西岛 | Jersey |
112 | JM | 牙买加 | Jamaica |
113 | JO | 约旦 | Jordan |
114 | JP | 日本 | Japan |
115 | KE | 肯尼亚 | Kenya |
116 | KG | 吉尔吉斯斯坦 | Kyrgyzstan |
117 | KH | 柬埔寨 | Cambodia |
118 | KI | 基里巴斯 | Kiribati |
119 | KM | 科摩罗 | Comoros |
120 | KN | 圣基茨和尼维斯 | Saint Kitts and Nevis |
121 | KP | 朝鲜民主主义人民共和国 | Korea, Democratic People’s Republic of |
122 | KR | 大韩民国 | Korea, Republic of |
123 | KW | 科威特 | Kuwait |
124 | KY | 开曼群岛 | Cayman Islands |
125 | KZ | 哈萨克斯坦 | Kazakhstan |
126 | LA | 老挝人民民主共和国 | Lao People’s Democratic Republic |
127 | LB | 黎巴嫩 | Lebanon |
128 | LC | 圣卢西亚 | Saint Lucia |
129 | LI | 列支敦士登 | Liechtenstein |
130 | LK | 斯里兰卡 | Sri Lanka |
131 | LR | 利比里亚 | Liberia |
132 | LS | 莱索托 | Lesotho |
133 | LT | 立陶宛 | Lithuania |
134 | LU | 卢森堡 | Luxembourg |
135 | LV | 拉脱维亚 | Latvia |
136 | LY | 利比亚 | Libya |
137 | MA | 摩洛哥 | Morocco |
138 | MC | 摩纳哥 | Monaco |
139 | MD | 摩尔多瓦共和国 | Moldova, Republic of |
140 | ME | 黑山 | Montenegro |
141 | MF | 圣马丁(法属部分) | Saint Martin (French part) |
142 | MG | 马达加斯加 | Madagascar |
143 | MH | 马绍尔群岛 | Marshall Islands |
144 | MK | 北马其顿 | North Macedonia |
145 | ML | 马里 | Mali |
146 | MM | 缅甸 | Myanmar |
147 | MN | 蒙古 | Mongolia |
148 | MO | 中国澳门特别行政区 | Macao Special Administrative Region of China |
149 | MP | 北马里亚纳群岛 | Northern Mariana Islands |
150 | MQ | 马提尼克 | Martinique |
151 | MR | 毛里塔尼亚 | Mauritania |
152 | MS | 蒙特塞拉特 | Montserrat |
153 | MT | 马耳他 | Malta |
154 | MU | 毛里求斯 | Mauritius |
155 | MV | 马尔代夫 | Maldives |
156 | MW | 马拉维 | Malawi |
157 | MX | 墨西哥 | Mexico |
158 | MY | 马来西亚 | Malaysia |
159 | MZ | 莫桑比克 | Mozambique |
160 | NA | 纳米比亚 | Namibia |
161 | NC | 新喀里多尼亚 | New Caledonia |
162 | NE | 尼日尔 | Niger |
163 | NF | 诺福克岛 | Norfolk Island |
164 | NG | 尼日利亚 | Nigeria |
165 | NI | 尼加拉瓜 | Nicaragua |
166 | NL | 荷兰 | Netherlands |
167 | NO | 挪威 | Norway |
168 | NP | 尼泊尔 | Nepal |
169 | NR | 瑙鲁 | Nauru |
170 | NU | 纽埃 | Niue |
171 | NZ | 新西兰 | New Zealand |
172 | OM | 阿曼 | Oman |
173 | PA | 巴拿马 | Panama |
174 | PE | 秘鲁 | Peru |
175 | PF | 法属波利尼西亚 | French Polynesia |
176 | PG | 巴布亚新几内亚 | Papua New Guinea |
177 | PH | 菲律宾 | Philippines |
178 | PK | 巴基斯坦 | Pakistan |
179 | PL | 波兰 | Poland |
180 | PM | 圣皮埃尔和密克隆 | Saint Pierre and Miquelon |
181 | PN | 皮特凯恩 | Pitcairn |
182 | PR | 波多黎各 | Puerto Rico |
183 | PS | 巴勒斯坦国 | Palestine, State of |
184 | PT | 葡萄牙 | Portugal |
185 | PW | 帕劳 | Palau |
186 | PY | 巴拉圭 | Paraguay |
187 | QA | 卡塔尔 | Qatar |
188 | RE | 留尼汪 | Réunion |
189 | RO | 罗马尼亚 | Romania |
190 | RS | 塞尔维亚 | Serbia |
191 | RU | 俄罗斯联邦 | Russian Federation |
192 | RW | 卢旺达 | Rwanda |
193 | SA | 沙特阿拉伯 | Saudi Arabia |
194 | SB | 所罗门群岛 | Solomon Islands |
195 | SC | 塞舌尔 | Seychelles |
196 | SD | 苏丹 | Sudan |
197 | SE | 瑞典 | Sweden |
198 | SG | 新加坡 | Singapore |
199 | SH | 圣赫勒拿、阿森松和特里斯坦 - 达库尼亚 | Saint Helena, Ascension and Tristan da Cunha |
200 | SI | 斯洛文尼亚 | Slovenia |
201 | SJ | 斯瓦尔巴和扬马延 | Svalbard and Jan Mayen |
202 | SK | 斯洛伐克 | Slovakia |
203 | SL | 塞拉利昂 | Sierra Leone |
204 | SM | 圣马力诺 | San Marino |
205 | SN | 塞内加尔 | Senegal |
206 | SO | 索马里 | Somalia |
207 | SR | 苏里南 | Suriname |
208 | SS | 南苏丹 | South Sudan |
209 | ST | 圣多美和普林西比 | São Tomé and Príncipe |
210 | SV | 萨尔瓦多 | El Salvador |
211 | SX | 圣马丁(荷属部分) | Sint Maarten (Dutch part) |
212 | SY | 阿拉伯叙利亚共和国 | Syrian Arab Republic |
213 | SZ | 斯威士兰 | Eswatini |
214 | TC | 特克斯和凯科斯群岛 | Turks and Caicos Islands |
215 | TD | 乍得 | Chad |
216 | TF | 法属南部领地 | French Southern Territories |
217 | TG | 多哥 | Togo |
218 | TH | 泰国 | Thailand |
219 | TJ | 塔吉克斯坦 | Tajikistan |
220 | TK | 托克劳 | Tokelau |
221 | TL | 东帝汶 | Timor-Leste |
222 | TM | 土库曼斯坦 | Turkmenistan |
223 | TN | 突尼斯 | Tunisia |
224 | TO | 汤加 | Tonga |
225 | TR | 土耳其 | Turkey |
226 | TT | 特立尼达和多巴哥 | Trinidad and Tobago |
227 | TV | 图瓦卢 | Tuvalu |
228 | TW | 中国台湾 | Taiwan, Province of China |
229 | TZ | 坦桑尼亚联合共和国 | Tanzania, United Republic of |
230 | UA | 乌克兰 | Ukraine |
231 | UG | 乌干达 | Uganda |
232 | UM | 美国本土外小岛屿 | United States Minor Outlying Islands |
233 | US | 美国 | United States of America |
234 | UY | 乌拉圭 | Uruguay |
235 | UZ | 乌兹别克斯坦 | Uzbekistan |
236 | VA | 梵蒂冈城国 | Vatican City State |
237 | VC | 圣文森特和格林纳丁斯 | Saint Vincent and the Grenadines |
238 | VE | 委内瑞拉玻利瓦尔共和国 | Venezuela, Bolivarian Republic of |
239 | VG | 英属维尔京群岛 | Virgin Islands, British |
240 | VI | 美属维尔京群岛 | Virgin Islands, U.S. |
241 | VN | 越南 | Viet Nam |
242 | VU | 瓦努阿图 | Vanuatu |
243 | WF | 瓦利斯和富图纳 | Wallis and Futuna |
244 | WS | 萨摩亚 | Samoa |
245 | XK | 科索沃 | Kosovo |
246 | YE | 也门 | Yemen |
247 | YT | 马约特 | Mayotte |
248 | ZA | 南非 | South Africa |
249 | ZM | 赞比亚 | Zambia |
250 | ZW | 津巴布韦 | Zimbabwe |
上面这个算是全网最全的国家码列表了,Settings也不会显示全部,应用多语言适配一般也不会全部适配;
有些语言并不是系统语言,Settings切换某些语言会提示非系统语言。
其他说明:
- 代码格式:所有国家 / 地区代码均为两位大写字母,符合 ISO 3166-1 标准。
- 特殊区域:
TW
:台湾(中国省级行政区)HK
/MO
:中国香港 / 澳门特别行政区XK
:科索沃(部分国家承认的独立国家,联合国未承认)
- 使用场景:常用于国际域名、IP 地址归属地、国际支付系统等。