以device owner身份运行时能否编程修改系统locale设置
设备所有者(Device Owner)应用修改系统区域设置说明
可以通过编程方式修改,具体适配规则按安卓版本区分:
- 安卓7.0(API 级别 24)及以上版本:
设备所有者应用可直接调用DevicePolicyManager提供的setSystemLocales()方法修改全局系统区域设置,不需要额外申请其他权限,调用前先确认自身具备设备所有者身份即可正常执行。如果是企业级托管的配置文件所有者(Profile Owner),只要对应设备是组织所有的托管设备,也可以调用该接口修改区域。 - 安卓6.0(API 级别 23)及更低版本:
系统未公开设备所有者专属的区域修改API,需要先申请android.permission.CHANGE_CONFIGURATION权限,再通过反射调用系统配置修改相关的隐藏方法实现,部分厂商定制ROM可能对该操作有限制,兼容性无法保证。
注意:修改系统区域设置会影响设备上所有应用的语言、日期时间、数字格式等展示逻辑,修改后系统会触发全局配置变更回调,前台运行的应用会自动重启适配新配置,执行操作前建议提前告知设备用户。
如果是通过安卓企业方案预配的设备,还可以在预配阶段就直接写入初始区域配置,无需后续应用单独调用接口修改。
内容的提问来源于stack exchange,提问作者sdabet
相关产品推荐
相关产品推荐

