在Android 6.0(Android M)上更改设备语言

时间:2015-08-24 05:51:13

标签: android localization internationalization adb

有些应用程序可以通过ADB命令更改Android设备语言(语言环境)。这需要在更改语言之前授予应用程序的CHANGE_CONFIGURATION权限。

在Android 6.0(API级别23,Nexus 6设备)上,不再允许授予所需权限,因为命令adb shell pm grant net.sanapeli.adbchangelanguage android.permission.CHANGE_CONFIGURATION(来自ADB Change Language app的包名称)产生< / p>

  

不允许操作:java.lang.SecurityException:权限android.permission.CHANGE_CONFIGURATION不是可更改的权限类型

如何在不支持设备的情况下更改Android OS版本6.0 上的语言/区域设置?这可以通过帮助应用程序,直接ADB命令,或启动一些意向vai ADB来完成吗?

2010年的相关问题:Change language programmatically in Android

2 个答案:

答案 0 :(得分:1)

Android OS 6.0(Marshmallow)版本的公共图像上不再存在SecurityException。这在Nexus 6和Nexus 9设备上得到了证实。案件结案。

答案 1 :(得分:0)

我能够通过将我的应用程序放在/ system / priv-app中来实现这一点,因此它成为一个特权系统应用程序。以root身份:

mount -o remount,rw /system
mkdir /system/priv-app/MyApp
cp /sdcard/myapp.apk /system/priv-app/MyApp/MyApp.apk
chcon "u:object_r:system_file:s0" /system/priv-app/MyApp
chcon "u:object_r:system_file:s0" /system/priv-app/MyApp/MyApp.apk
mount -o remount,ro /system

Chcon设置了正确的SELinux安全上下文。