android地区/时区/语言

Android应用中,为了适应不同地区的用户,需要设置正确的时区、地区和语言。可以通过配置PRODUCT_PROPERTY_OVERRIDES来设定,例如设置时区为America/New_York,语言为英语(en),国家为美国(US)。时区信息可在setting/res/timezone.xml文件中查看。
部署运行你感兴趣的模型镜像

客户地区不一,备不时之需。

android编译使用地方:

PRODUCT_PROPERTY_OVERRIDES += \
persist.sys.timezone=America/New_York \
persist.sys.language=en \
persist.sys.country=US


时区其实可以在setting/res/timezone.xml看到。

•Marshall Islands              马绍尔群岛                    Pacific/Majuro                  
•Midway Island                 中途岛                        Pacific/Midway                  
•Hawaii                        夏威夷                        Pacific/Honolulu                
•Alaska                        阿拉斯加州                    America/Anchorage               
•Pacific Time                  太平洋时间                    America/Los_Angeles             
•Tijuana                       蒂华纳                        America/Tijuana                 
•Arizona                       亚利桑那                      America/Phoenix                 
•Chihuahua                     吉娃娃                        America/Chihuahua               
•Mountain Time                 山地时间                      America/Denver                  
•Central America               中美洲                        America/Costa_Rica              
•Central Time                  美国中部时间                  America/Chicago                 
•Mexico City                   墨西哥城                      America/Mexico_City             
•Saskatchewan                  萨斯喀彻温省                  America/Regina                  
•Bogota                        波哥大                        America/Bogota                  
•Eastern Time                  东部时间                      America/New_York       
•Atlantic Time (Barbados)      大西洋时间(巴巴多斯)        America/Barbados                
•Atlantic Time (Canada)        大西洋时间(加拿大)          America/Halifax                 
•Manaus                        马瑙斯                        America/Manaus                  
•Santiago                      圣地亚哥                      America/Santiago                
•Newfoundland                  纽芬兰                        America/St_Johns                
•Brasilia                      巴西利亚                      America/Sao_Paulo               
•Buenos Aires                  布宜诺斯艾利斯                America/Argentina/Buenos_Aires  
•Greenland                     格陵兰                        America/Godthab                 
•Montevideo                    蒙得维的亚                    America/Montevideo              
•Mid-Atlantic                  中大西洋                      Atlantic/South_Georgia          
•Azores                        亚速尔群岛                    Atlantic/Azores                 
•Cape Verde Islands            佛得角群岛                    Atlantic/Cape_Verde             
•Casablanca                    卡萨布兰卡                    Africa/Casablanca               
•London, Dublin                伦敦,都柏林                  Europe/London                   
•Amsterdam, Berlin             阿姆斯特丹,柏林              Europe/Amsterdam                
•
Belgrade                      贝尔格莱德                    Europe/Belgrade          
•Venezuela                     委内瑞拉                      America/Caracas                 
Brussels                      布鲁塞尔                      Europe/Brussels                 
•Sarajevo                      萨拉热窝                      Europe/Sarajevo                 
•Windhoek                      温得和克                      Africa/Windhoek                 
•W. Africa Time                W.非洲时间                    Africa/Brazzaville              
•Amman, Jordan                 约旦安曼,                    Asia/Amman                      
•Athens, Istanbul              雅典,伊斯坦布尔              Europe/Athens                   
•Beirut, Lebanon               贝鲁特,黎巴嫩                Asia/Beirut                     
•Cairo                         开罗                          Africa/Cairo                    
•Helsinki                      赫尔辛基                      Europe/Helsinki                 
•Jerusalem                     耶路撒冷                      Asia/Jerusalem                  
•Minsk                         明斯克                        Europe/Minsk                    
•Harare                        哈拉雷                        Africa/Harare                   
•Baghdad                       巴格达                        Asia/Baghdad                    
•Moscow                        莫斯科                        Europe/Moscow                   
•Kuwait                        科威特                        Asia/Kuwait                     
•Nairobi                       内罗毕                        Africa/Nairobi                  
•
Tehran                        德黑兰                        Asia/Tehran                     
•Baku                          巴库                          Asia/Baku                       
•Tbilisi                       第比利斯                      Asia/Tbilisi                    
•Yerevan                       埃里温                        Asia/Yerevan                    
•Dubai                         迪拜                          Asia/Dubai                      
•Kabul                         喀布尔                        Asia/Kabul                      
•Islamabad, Karachi            伊斯兰堡,卡拉奇              Asia/Karachi                    
•Ural'sk                       Ural'sk                       Asia/Oral                       
•Yekaterinburg                 叶卡捷琳堡                    Asia/Yekaterinburg              
•Kolkata                       加尔各答                      Asia/Calcutta                   
•Sri Lanka                     斯里兰卡                      Asia/Colombo                    
•Kathmandu                     加德满都                      Asia/Katmandu                   
•Astana                        阿斯塔纳                      Asia/Almaty                     
•Yangon                        仰光                          Asia/Rangoon                    
•Krasnoyarsk                   克拉斯诺亚尔斯克              Asia/Krasnoyarsk                
•Bangkok                       曼谷                          Asia/Bangkok                    
•
Beijing                       北京                          Asia/Shanghai                   
•Hong Kong                香港                          Asia/Hong_Kong                  
•Irkutsk                       伊尔库次克                    Asia/Irkutsk                    
•Kuala Lumpur            吉隆坡                        Asia/Kuala_Lumpur               
•Perth                         珀斯                          Australia/Perth                 
•Taipei                        台北                          Asia/Taipei                     
•Seoul                         汉城                          Asia/Seoul                      
•Tokyo, Osaka            东京,大阪                    Asia/Tokyo                      
•Yakutsk                       雅库茨克                      Asia/Yakutsk                    
•Adelaide                      阿德莱德                      Australia/Adelaide              
•Darwin                        达尔文                        Australia/Darwin                
•Brisbane                      布里斯班                      Australia/Brisbane              
•Hobart                        霍巴特                        Australia/Hobart                
•Sydney, Canberra        悉尼,堪培拉                  Australia/Sydney                
•Vladivostok                   符拉迪沃斯托克                Asia/Vladivostok                
•Guam                          关岛                          Pacific/Guam                    
•Magadan                      马加丹                        Asia/Magadan                    
•Auckland                      奥克兰                        Pacific/Auckland                
•Fiji                              斐济                            Pacific/Fiji                    
•Tonga                         汤加                          Pacific/Tongatapu


地区和语言:

•简体中文(中国) zh-cn 繁体中文(台湾地区) zh-tw
•繁体中文(香港) zh-hk 英语(香港) en-hk
•英语(美国) en-us 英语(英国) en-gb
•英语(全球) en-ww 英语(加拿大) en-ca
•英语(澳大利亚) en-au 英语(爱尔兰) en-ie
•英语(芬兰) en-fi 芬兰语(芬兰) fi-fi
•英语(丹麦) en-dk 丹麦语(丹麦) da-dk
•英语(以色列) en-il 希伯来语(以色列) he-il
•英语(南非) en-za 英语(印度) en-in
•英语(挪威) en-no 英语(新加坡) en-sg
•英语(新西兰) en-nz 英语(印度尼西亚) en-id
•英语(菲律宾) en-ph 英语(泰国) en-th
•英语(马来西亚) en-my 英语(阿拉伯) en-xa
•韩文(韩国) ko-kr 日语(日本) ja-jp
•
荷兰语(荷兰) nl-nl 荷兰语(比利时) nl-be
•葡萄牙语(葡萄牙) pt-pt 葡萄牙语(巴西) pt-br
•法语(法国) fr-fr 法语(卢森堡) fr-lu
•法语(瑞士) fr-ch 法语(比利时) fr-be
•法语(加拿大) fr-ca 西班牙语(拉丁美洲) es-la
•西班牙语(西班牙) es-es 西班牙语(阿根廷) es-ar
•西班牙语(美国) es-us 西班牙语(墨西哥) es-mx
•西班牙语(哥伦比亚) es-co 西班牙语(波多黎各) es-pr
•德语(德国) de-de 德语(奥地利) de-at
•德语(瑞士) de-ch 俄语(俄罗斯) ru-ru
•意大利语(意大利) it-it 希腊语(希腊) el-gr
•挪威语(挪威) no-no 匈牙利语(匈牙利) hu-hu
•土耳其语(土耳其) tr-tr 捷克语(捷克共和国) cs-cz
•斯洛文尼亚语 sl-sl 波兰语(波兰) pl-pl
•瑞典语(瑞典) sv-se 西班牙语 (智利) es-cl


PRODUCT_LOCALES [en_US en_US cs_CZ da_DK de_AT de_CH de_DE de_LI el_GR en_AU en_CA en_GB en_NZ en_SG es_ES fr_CA fr_CH fr_BE fr_FR it_CH it_IT ja_JP ko_KR nb_NO nl_BE nl_NL pl_PL pt_PT ru_RU sv_SE tr_TR zh_CN zh_HK zh_TW am_ET hi_IN en_US fr_FR it_IT es_ES de_DE nl_NL cs_CZ pl_PL ja_JP zh_TW zh_CN ru_RU ko_KR nb_NO es_US da_DK el_GR tr_TR pt_PT pt_BR rm_CH sv_SE bg_BG ca_ES en_GB fi_FI hi_IN hr_HR hu_HU in_ID iw_IL lt_LT lv_LV ro_RO sk_SK sl_SI sr_RS uk_UA vi_VN tl_PH ar_EG fa_IR th_TH sw_TZ ms_MY af_ZA zu_ZA am_ET hi_IN]


您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

<think>我们正在讨论的是Android系统级别修改默认时区的方法,而不是应用层修改。 根据引用[1]和引用[3],修改系统默认时区需要修改系统属性`persist.sys.timezone`,这个操作通常需要系统级权限,并且需要在系统启动过程中进行初始化设置。 具体步骤: 1. 在Android系统源码中,通常可以在`SystemServer.java`中修改默认时区设置。如引用[1]所示,将默认的GMT时区修改为"Asia/Shanghai"。 2. 另一种方式是通过设置系统属性,但注意只有系统进程(如system_server)或具有系统权限的应用才能修改。 但是,用户的问题是如何更改系统时区,可能包括两种场景: a) 在系统源码编译阶段设置默认时区(出厂设置) b) 在设备运行时修改系统时区(需要系统权限) 下面分别说明: 一、编译阶段设置(出厂默认时区) 在设备出厂时设置默认时区,可以通过修改系统属性。在Android源码中,通常有两种方式: 1. 修改`SystemServer.java`,如引用[1]的patch所示: 在`SystemServer`类的`startOtherServices`方法中,如果检测到`persist.sys.timezone`属性为空,则设置默认时区。 将原来的设置GMT改为设置成想要的时区,例如: - SystemProperties.set("persist.sys.timezone", "GMT"); + SystemProperties.set("persist.sys.timezone", "Asia/Shanghai"); 2. 通过设备mk文件设置(推荐): 在设备的makefile中(例如`device/<manufacturer>/<device>/system.prop`)添加: persist.sys.timezone=Asia/Shanghai 3. 也可以通过设置`ro.product.timezone`属性,但注意`ro`属性是只读的,所以通常使用`persist.sys.timezone`。 二、运行时修改(需要系统权限) 在设备运行时,只有系统进程(如system_server)或具有系统权限的应用(例如系统设置应用)才能修改系统时区。 修改方法: 调用`SystemProperties.set("persist.sys.timezone", timezoneId);`,但需要`android.permission.INTERACT_ACROSS_USERS`权限,并且该API是隐藏的。 另外,Android系统提供了更安全的API供系统应用使用: 1. 使用`AlarmManager`的`setTimeZone(String timeZone)`方法(需要`android.permission.SET_TIME_ZONE`权限) 但注意:此方法只能由系统应用调用,普通应用无法调用。 2. 使用`SystemClock.setCurrentTimeZone(String timeZone)`(隐藏API,需要系统签名) 系统设置应用修改时区的流程通常如下: - 用户选择时区 - 系统设置应用调用`AlarmManager.setTimeZone()`来修改时区 三、通过adb命令修改(需要root权限) 在已root的设备上,可以通过adb命令修改系统属性: adb shell su setprop persist.sys.timezone Asia/Shanghai 修改后,需要重启系统进程或者重启设备生效。 四、注意事项 修改时区后,需要通知系统其他部分更新时区信息。通常系统设置应用在调用`AlarmManager.setTimeZone()`时,系统服务会处理这些通知。 总结: 系统级修改时区的方法主要有两种:一种是在系统编译时设置出厂默认值(修改源码或mk文件),另一种是在运行时通过系统API或修改系统属性(需要系统权限)。 下面给出一个系统应用修改时区的代码示例(需要系统签名): </think>### Android 系统级修改默认时区的方法 在 Android 系统中修改默认时区通常需要系统级权限,以下是核心实现方法: #### 1. **修改系统源码(编译级别)** 在 `frameworks/base/services/java/com/android/server/SystemServer.java` 中修改初始化逻辑: ```java // 原始代码 String timezoneProperty = SystemProperties.get("persist.sys.timezone"); if (timezoneProperty == null || timezoneProperty.isEmpty()) { Slog.w(TAG, "Timezone not set; setting to GMT."); SystemProperties.set("persist.sys.timezone", "GMT"); } // 修改为(示例设为上海时区) String timezoneProperty = SystemProperties.get("persist.sys.timezone"); if (timezoneProperty == null || timezoneProperty.isEmpty()) { Slog.w(TAG, "Setting default timezone to Shanghai"); SystemProperties.set("persist.sys.timezone", "Asia/Shanghai"); } ``` **关键点**: - 修改 `SystemProperties.set()` 的参数值为目标时区 ID(如 `Asia/Shanghai`)[^1] - 需重新编译系统镜像生效 #### 2. **通过设备配置文件设置** 在设备 Makefile(如 `device.mk`)中添加属性覆盖: ```makefile PRODUCT_PROPERTY_OVERRIDES += \ persist.sys.timezone=Asia/Shanghai ``` **效果**:设备出厂时即应用该时区设置[^1] #### 3. **运行时修改(需系统权限)** 系统级应用可通过以下代码修改: ```java // 需要 android.permission.WRITE_SECURE_SETTINGS 权限 AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); alarmManager.setTimeZone("Asia/Shanghai"); // 设置新时区 // 同时更新系统属性 SystemProperties.set("persist.sys.timezone", "Asia/Shanghai"); ``` **权限要求**: - 系统签名(`platform` 证书) - `WRITE_SECURE_SETTINGS` 权限声明 - SELinux 策略放行 --- ### 关键机制说明 1. **时区初始化流程** ```mermaid graph LR A[系统启动] --> B[读取 persist.sys.timezone] B --> C{属性是否存在?} C -->|是| D[应用该时区] C -->|否| E[设置GMT为默认值] ``` 修改源码本质是干预初始值设定[^1][^3] 2. **权限控制矩阵** | 操作方式 | 所需权限 | 生效范围 | |---|---|----| | 编译修改 | 无(开发者权限) | 全局永久 | | 属性覆盖 | 设备厂商权限 | 出厂设备 | | 运行时修改 | `WRITE_SECURE_SETTINGS` | 当前系统 | 3. **时区ID格式规范** 必须使用 IANA 时区数据库的标识符(Olson IDs),例如: - `America/New_York` - `Europe/London` - `Asia/Tokyo` --- ### 注意事项 1. **属性迁移机制** 新版本 Android 使用 `persist.sys.locale` 统一管理区域设置,修改时区需同步更新该属性[^3]: ```java SystemProperties.set("persist.sys.locale", "zh-CN"); // 语言+地区 ``` 2. **版本兼容** Android 7.0+ 强化了属性保护,需在 `sepolicy` 中添加规则: ```te # domain.te allow system_app system_prop:property_service set; ``` 3. **生效检测** 修改后验证: ```bash adb shell getprop persist.sys.timezone # 应输出 Asia/Shanghai ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值