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 个条目:

国家 / 地区代码表(带序号):

序号代码国家 / 地区名称(中文)国家 / 地区名称(英文)
1AD安道尔Andorra
2AE阿拉伯联合酋长国United Arab Emirates
3AF阿富汗Afghanistan
4AG安提瓜和巴布达Antigua and Barbuda
5AI安圭拉Anguilla
6AL阿尔巴尼亚Albania
7AM亚美尼亚Armenia
8AO安哥拉Angola
9AQ南极洲Antarctica
10AR阿根廷Argentina
11AS美属萨摩亚American Samoa
12AT奥地利Austria
13AU澳大利亚Australia
14AW阿鲁巴Aruba
15AX奥兰群岛Åland Islands
16AZ阿塞拜疆Azerbaijan
17BA波斯尼亚和黑塞哥维那Bosnia and Herzegovina
18BB巴巴多斯Barbados
19BD孟加拉国Bangladesh
20BE比利时Belgium
21BF布基纳法索Burkina Faso
22BG保加利亚Bulgaria
23BH巴林Bahrain
24BI布隆迪Burundi
25BJ贝宁Benin
26BL圣巴泰勒米Saint Barthélemy
27BM百慕大Bermuda
28BN文莱达鲁萨兰国Brunei Darussalam
29BO玻利维亚(多民族国)Bolivia, Plurinational State of
30BQ博内尔、圣尤斯特歇斯和萨巴Bonaire, Sint Eustatius and Saba
31BR巴西Brazil
32BS巴哈马Bahamas
33BT不丹Bhutan
34BV布维岛Bouvet Island
35BW博茨瓦纳Botswana
36BY白俄罗斯Belarus
37BZ伯利兹Belize
38CA加拿大Canada
39CC科科斯(基林)群岛Cocos (Keeling) Islands
40CD刚果民主共和国Congo, the Democratic Republic of the
41CF中非共和国Central African Republic
42CG刚果共和国Congo
43CH瑞士Switzerland
44CI科特迪瓦Côte d’Ivoire
45CK库克群岛Cook Islands
46CL智利Chile
47CM喀麦隆Cameroon
48CN中国China
49CO哥伦比亚Colombia
50CR哥斯达黎加Costa Rica
51CU古巴Cuba
52CV佛得角Cabo Verde
53CW库拉索Curaçao
54CX圣诞岛Christmas Island
55CY塞浦路斯Cyprus
56CZ捷克共和国Czech Republic
57DE德国Germany
58DJ吉布提Djibouti
59DK丹麦Denmark
60DM多米尼克Dominica
61DO多米尼加共和国Dominican Republic
62DZ阿尔及利亚Algeria
63EC厄瓜多尔Ecuador
64EE爱沙尼亚Estonia
65EG埃及Egypt
66EH西撒哈拉Western Sahara
67ER厄立特里亚Eritrea
68ES西班牙Spain
69ET埃塞俄比亚Ethiopia
70FI芬兰Finland
71FJ斐济Fiji
72FK福克兰群岛(马尔维纳斯)Falkland Islands (Malvinas)
73FM密克罗尼西亚联邦Federated States of Micronesia
74FO法罗群岛Faroe Islands
75FR法国France
76GA加蓬Gabon
77GB英国United Kingdom
78GD格林纳达Grenada
79GE格鲁吉亚Georgia
80GF法属圭亚那French Guiana
81GG根西岛Guernsey
82GH加纳Ghana
83GI直布罗陀Gibraltar
84GL格陵兰Greenland
85GM冈比亚Gambia
86GN几内亚Guinea
87GP瓜德罗普Guadeloupe
88GQ赤道几内亚Equatorial Guinea
89GR希腊Greece
90GS南乔治亚岛和南桑威奇群岛South Georgia and the South Sandwich Islands
91GT危地马拉Guatemala
92GU关岛Guam
93GW几内亚比绍Guinea-Bissau
94GY圭亚那Guyana
95HK中国香港特别行政区Hong Kong Special Administrative Region of China
96HM赫德岛和麦克唐纳群岛Heard Island and McDonald Islands
97HN洪都拉斯Honduras
98HR克罗地亚Croatia
99HT海地Haiti
100HU匈牙利Hungary
101ID印度尼西亚Indonesia
102IE爱尔兰Ireland
103IL以色列Israel
104IM马恩岛Isle of Man
105IN印度India
106IO英属印度洋领地British Indian Ocean Territory
107IQ伊拉克Iraq
108IR伊朗伊斯兰共和国Iran, Islamic Republic of
109IS冰岛Iceland
110IT意大利Italy
111JE泽西岛Jersey
112JM牙买加Jamaica
113JO约旦Jordan
114JP日本Japan
115KE肯尼亚Kenya
116KG吉尔吉斯斯坦Kyrgyzstan
117KH柬埔寨Cambodia
118KI基里巴斯Kiribati
119KM科摩罗Comoros
120KN圣基茨和尼维斯Saint Kitts and Nevis
121KP朝鲜民主主义人民共和国Korea, Democratic People’s Republic of
122KR大韩民国Korea, Republic of
123KW科威特Kuwait
124KY开曼群岛Cayman Islands
125KZ哈萨克斯坦Kazakhstan
126LA老挝人民民主共和国Lao People’s Democratic Republic
127LB黎巴嫩Lebanon
128LC圣卢西亚Saint Lucia
129LI列支敦士登Liechtenstein
130LK斯里兰卡Sri Lanka
131LR利比里亚Liberia
132LS莱索托Lesotho
133LT立陶宛Lithuania
134LU卢森堡Luxembourg
135LV拉脱维亚Latvia
136LY利比亚Libya
137MA摩洛哥Morocco
138MC摩纳哥Monaco
139MD摩尔多瓦共和国Moldova, Republic of
140ME黑山Montenegro
141MF圣马丁(法属部分)Saint Martin (French part)
142MG马达加斯加Madagascar
143MH马绍尔群岛Marshall Islands
144MK北马其顿North Macedonia
145ML马里Mali
146MM缅甸Myanmar
147MN蒙古Mongolia
148MO中国澳门特别行政区Macao Special Administrative Region of China
149MP北马里亚纳群岛Northern Mariana Islands
150MQ马提尼克Martinique
151MR毛里塔尼亚Mauritania
152MS蒙特塞拉特Montserrat
153MT马耳他Malta
154MU毛里求斯Mauritius
155MV马尔代夫Maldives
156MW马拉维Malawi
157MX墨西哥Mexico
158MY马来西亚Malaysia
159MZ莫桑比克Mozambique
160NA纳米比亚Namibia
161NC新喀里多尼亚New Caledonia
162NE尼日尔Niger
163NF诺福克岛Norfolk Island
164NG尼日利亚Nigeria
165NI尼加拉瓜Nicaragua
166NL荷兰Netherlands
167NO挪威Norway
168NP尼泊尔Nepal
169NR瑙鲁Nauru
170NU纽埃Niue
171NZ新西兰New Zealand
172OM阿曼Oman
173PA巴拿马Panama
174PE秘鲁Peru
175PF法属波利尼西亚French Polynesia
176PG巴布亚新几内亚Papua New Guinea
177PH菲律宾Philippines
178PK巴基斯坦Pakistan
179PL波兰Poland
180PM圣皮埃尔和密克隆Saint Pierre and Miquelon
181PN皮特凯恩Pitcairn
182PR波多黎各Puerto Rico
183PS巴勒斯坦国Palestine, State of
184PT葡萄牙Portugal
185PW帕劳Palau
186PY巴拉圭Paraguay
187QA卡塔尔Qatar
188RE留尼汪Réunion
189RO罗马尼亚Romania
190RS塞尔维亚Serbia
191RU俄罗斯联邦Russian Federation
192RW卢旺达Rwanda
193SA沙特阿拉伯Saudi Arabia
194SB所罗门群岛Solomon Islands
195SC塞舌尔Seychelles
196SD苏丹Sudan
197SE瑞典Sweden
198SG新加坡Singapore
199SH圣赫勒拿、阿森松和特里斯坦 - 达库尼亚Saint Helena, Ascension and Tristan da Cunha
200SI斯洛文尼亚Slovenia
201SJ斯瓦尔巴和扬马延Svalbard and Jan Mayen
202SK斯洛伐克Slovakia
203SL塞拉利昂Sierra Leone
204SM圣马力诺San Marino
205SN塞内加尔Senegal
206SO索马里Somalia
207SR苏里南Suriname
208SS南苏丹South Sudan
209ST圣多美和普林西比São Tomé and Príncipe
210SV萨尔瓦多El Salvador
211SX圣马丁(荷属部分)Sint Maarten (Dutch part)
212SY阿拉伯叙利亚共和国Syrian Arab Republic
213SZ斯威士兰Eswatini
214TC特克斯和凯科斯群岛Turks and Caicos Islands
215TD乍得Chad
216TF法属南部领地French Southern Territories
217TG多哥Togo
218TH泰国Thailand
219TJ塔吉克斯坦Tajikistan
220TK托克劳Tokelau
221TL东帝汶Timor-Leste
222TM土库曼斯坦Turkmenistan
223TN突尼斯Tunisia
224TO汤加Tonga
225TR土耳其Turkey
226TT特立尼达和多巴哥Trinidad and Tobago
227TV图瓦卢Tuvalu
228TW中国台湾Taiwan, Province of China
229TZ坦桑尼亚联合共和国Tanzania, United Republic of
230UA乌克兰Ukraine
231UG乌干达Uganda
232UM美国本土外小岛屿United States Minor Outlying Islands
233US美国United States of America
234UY乌拉圭Uruguay
235UZ乌兹别克斯坦Uzbekistan
236VA梵蒂冈城国Vatican City State
237VC圣文森特和格林纳丁斯Saint Vincent and the Grenadines
238VE委内瑞拉玻利瓦尔共和国Venezuela, Bolivarian Republic of
239VG英属维尔京群岛Virgin Islands, British
240VI美属维尔京群岛Virgin Islands, U.S.
241VN越南Viet Nam
242VU瓦努阿图Vanuatu
243WF瓦利斯和富图纳Wallis and Futuna
244WS萨摩亚Samoa
245XK科索沃Kosovo
246YE也门Yemen
247YT马约特Mayotte
248ZA南非South Africa
249ZM赞比亚Zambia
250ZW津巴布韦Zimbabwe

上面这个算是全网最全的国家码列表了,Settings也不会显示全部,应用多语言适配一般也不会全部适配;

有些语言并不是系统语言,Settings切换某些语言会提示非系统语言。

其他说明:

  • 代码格式:所有国家 / 地区代码均为两位大写字母,符合 ISO 3166-1 标准。
  • 特殊区域:
    • TW:台湾(中国省级行政区)
    • HK/MO:中国香港 / 澳门特别行政区
    • XK:科索沃(部分国家承认的独立国家,联合国未承认)
  • 使用场景:常用于国际域名、IP 地址归属地、国际支付系统等。

PS: 把每一天的烟火气,都酿成热爱的诗 .

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/84033.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c/c++的opencv高斯模糊

深入探索图像高斯模糊&#xff1a;原理、C/C实现与OpenCV应用 在图像处理的众多技术中&#xff0c;模糊&#xff08;或平滑&#xff09;是最为基础且不可或缺的一环。它广泛应用于降噪、图像预处理、特征提取前的平滑以及计算机图形学中的各种视觉效果。在高斯模糊&#xff08…

Java求职者面试:从Spring Boot到微服务的技术点解析

Java求职者面试&#xff1a;从Spring Boot到微服务的技术点解析 场景&#xff1a;互联网医疗-预约挂号系统 面试官&#xff1a; “小明&#xff0c;我们今天的场景是一个互联网医疗的预约挂号系统。我们需要支持高并发的用户预约操作&#xff0c;同时保证数据一致性和系统的高…

专业 YouTube SEO 方案:打造高排名视频的关键步骤

YouTube 是全球订阅量最高的社交媒体平台之一。YouTube 为发布创意视频内容和针对特定受众开展营销活动提供了无限可能&#xff0c;是任何品牌内容营销策略的重要组成部分。 但是&#xff0c;为了发展您的 YouTube 频道并消除噪音&#xff0c;优化您的视频内容以便可以在搜索结…

Java Collection(集合) 接口

Date: 2025-05-21 20:21:32 author: lijianzhan Java 集合框架提供了一组接口和类&#xff0c;以实现各种数据结构和算法。 以下是关于 Java 集合的核心内容说明&#xff1a; /*** Java Collection Framework 说明&#xff1a;** 在 Java 中&#xff0c;集合&#xff08;Collec…

如何用ipmitool修改FRU信息?

如何用ipmitool修改FRU信息&#xff1f; FRU&#xff08;Field Replaceable Unit&#xff0c;现场可更换单元&#xff09;记录了服务器硬件的关键信息&#xff0c;如序列号、制造商、型号等。通过ipmitool修改FRU信息&#xff0c;常用于硬件维护、资产标签更新或调试场景。以下…

uniapp vue 开发微信小程序 分包梳理经验总结

嗨&#xff0c;我是小路。今天主要和大家分享的主题是“uniapp vue 开发微信小程序 分包梳理经验总结”。 在使用 UniAppvue框架开发微信小程序时&#xff0c;当项目比较大的时候&#xff0c;经常需要分包加载。它有助于控制主包的大小&#xff0c;从而提升小程序的启…

git合并多次commit提交

首先查看历史记录 git log 查看你想要合并的commit是哪些&#xff08;注意&#xff1a;这里是逆序&#xff0c;最上的是最新提交&#xff09; 找到当前想要合并的最后一个记录&#xff0c;复制该记录的下一个记录的 id&#xff08;黄色部分commit id&#xff09;&#xff0c…

系统架构设计(七):数据流图

定义 数据流图&#xff08;Data Flow Diagram, DFD&#xff09;是一种用于表示信息系统数据流转及处理过程的图形工具。 它反映系统功能及数据之间的关系&#xff0c;是结构化分析与设计的重要工具。 主要符号 符号说明描述举例方框外部实体&#xff08;源或终点&#xff09…

MAUI与XAML交互:构建跨平台应用的关键技巧

文章目录 引言1. 代码隐藏文件关联1.1 XAML文件与代码隐藏文件的关系1.2 部分类机制1.3 InitializeComponent方法1.4 XAML命名空间映射 2. 元素名称与x:Name属性2.1 x:Name属性的作用2.2 命名规则与最佳实践2.3 x:Name与x:Reference的区别2.4 编译过程中的名称处理 3. 在代码中…

php://filter的trick

php://filter流最常见的用法就是文件包含读取文件&#xff0c;但是它不止可以用来读取文件&#xff0c;还可以和RCE&#xff0c;XXE&#xff0c;反序列化等进行组合利用 filter协议介绍 php://filter是php独有的一种协议&#xff0c;它是一种过滤器&#xff0c;可以作为一个中…

微信小程序开发中,请求数据列表,第一次请求10条,滑动到最低自动再请求10条,后面请求的10条怎么加到第一次请求的10条后面?

在微信小程序中实现分页加载数据列表&#xff0c;可通过以下步骤将后续请求的10条数据追加到首次加载的数据之后&#xff1a; 实现步骤及代码示例 定义页面数据与参数 在页面的 data 中初始化存储列表、页码、加载状态及是否有更多数据的标识&#xff1a; Page({data: {list…

如何利用 Java 爬虫根据 ID 获取某手商品详情:实战指南

在电商领域&#xff0c;获取商品详情数据对于市场分析、选品上架、库存管理和价格策略制定等方面具有重要价值。某手作为国内知名的电商平台&#xff0c;提供了丰富的商品资源。通过 Java 爬虫技术&#xff0c;我们可以高效地根据商品 ID 获取某手商品的详细信息。本文将详细介…

电平匹配电路

1、为什么要电平匹配? 现在很多SOC器件为了降低功耗,都把IO口的电平设计成了1.8V,核电压0.85V,当这种SOC做主平台时,在做接口设计需要格外关注电平的匹配。单板中经常需要将1.8V的电平转换成3.3V或者转成5V。如果没有注意到输入和输出信号之间的电平匹配,系统就无法正常…

【技术揭秘】Profinet转RS485如何优化冲剪机的实时通信性能?​​

在现代工业自动化领域&#xff0c;通信协议是连接不同设备和系统的关键。RS485和Profinet是两种广泛使用的工业通信标准&#xff0c;它们各自拥有独特的特性和应用场景。本文将探讨如何通过一个小疆智控Profinet转RS485网关来优化冲剪机的应用&#xff0c;提高生产线的效率和可…

面经总目录——持续更新中

说明 本面经总结了校招时我面试各个公司的面试题目&#xff0c;每场面试后我都及时进行了总结&#xff0c;同时后期补充扩展了同类型的相近面试题&#xff0c;校招时从两个方向进行投递&#xff0c;视觉算法工程师和软件开发工程师&#xff08;C方向&#xff09;&#xff0c;所…

AI前端页面生成:deepsite、Qwen Web Dev

deepsite网页生成 https://huggingface.co/spaces/enzostvs/deepsite 落地页美观不错,默认用tailwindcss实现样式 提示词: AI 功能是核心,通过后端 server.js 实现。server.js 使用 Express 框架,依赖 @huggingface/inference 库与 Hugging Face 推理 API 交互,具体使用…

华为云鲲鹏型kC2云服务器——鲲鹏920芯片性能测评

华为云鲲鹏型kC2云服务器性能怎么样&#xff1f;性能很不错&#xff0c;鲲鹏通用计算增强型kC2实例是ARM架构的云服务器&#xff0c;CPU采用Huawei Kunpeng 920 2.9GHz主频&#xff0c;每个vCPU对应一个底层物理内核。华为云服务器网hwyfwq.com整理鲲鹏型kC2云服务器性能测评及…

Java 安全SPEL 表达式SSTI 模版注入XXEJDBCMyBatis 注入

https://github.com/bewhale/JavaSec https://github.com/j3ers3/Hello-Java-Sec https://mp.weixin.qq.com/s/ZO4tpz9ys6kCIryNhA5nYw #Java 安全 -SQL 注入 -JDBC&MyBatis -JDBC 1 、采用 Statement 方法拼接 SQL 语句 2 、 PrepareStatement 会对 SQL 语…

【VxWorks 实时操作系统(RTOS)】常用函数汇总

VxWorks 实时操作系统&#xff08;RTOS&#xff09;中的核心函数 1. taskSpawn 函数 功能&#xff1a;用于动态创建并激活一个新任务&#xff08;线程&#xff09;。参数解析&#xff08;以 VxWorks 为例&#xff09;&#xff1a;int taskSpawn(char *name, // 任务名…

【MySQL】数据库约束

MySQL(三)数据库约束 数据库约束 一、not null 二、default 三、unique 四、primary key 1.自增主键机制 1.1单服务器下 1.2分布式下 1.2.1时间戳 1.2.2主机编号 1.2.3随机因子 五、foreign key 1.∈关系维护 1.1父约子&#xff1a; 1.2子约父&#xff1a; 1.3…