LocalePicker意图中的额外内容

问题描述 投票:0回答:1

我试图通过adb shell调用com.android.settings / .LocalePicker以包含在Tasker应用程序中。

当我做

am start -n com.android.settings/.LocalePicker

我只看到当前的系统语言区域设置,没有其他任何设备选项。

相反,如果我继续浏览隐藏的“开发设置”菜单,该菜单中包含“区域设置”选项,那么我将获得语言/区域设置的完整交互式屏幕,您可以从中进行选择。

我应该指出,这是在Android 2.1系统上,因此更多的现代选项不可用。这是从隐藏的“开发设置”菜单中选择“区域设置”的logcat的一部分:

I/ActivityManager( 1111): Starting activity: Intent {     
act=android.intent.action.MAIN cmp=com.android.settings/.LocalePicker   
(has extras) }
D/ResourceType( 1162): calling getConfigurations
D/ResourceType( 1162): called getConfigurations size=68
D/asset   ( 1162): locale  0: ''
D/asset   ( 1162): locale  1: 'de'
D/asset   ( 1162): locale  2: 'fr'
D/asset   ( 1162): locale  3: 'es'
D/asset   ( 1162): locale  4: 'it'
D/asset   ( 1162): locale  5: 'en_GB'
D/asset   ( 1162): locale  6: 'en_US'
D/asset   ( 1162): locale  7: 'zh_TW'
D/asset   ( 1162): locale  8: 'fr_CA'
D/asset   ( 1162): locale  9: 'de_DE'
D/asset   ( 1162): locale 10: 'fr_FR'
D/asset   ( 1162): locale 11: 'es_ES'
D/asset   ( 1162): locale 12: 'it_IT'
D/asset   ( 1162): locale 13: 'en'
D/asset   ( 1162): locale 14: 'zh'

“有额外的东西”并没有像我希望的那样有启发性。我用有限的理解研究了这个,并且认识到在访问菜单选项时发送了一些额外的信息,而不是仅通过ADB发送意图。但我不知道该信息采用何种形式或格式。我已经反编译了Settings应用程序并查看了Manalest以及Locale的smali文件,但我对Java的理解非常有限。

还有什么我应该看的吗?

哦,Tasker Misc>设置对话框>区域设置也只是调出当前设置的区域设置,而不是交互式列表。

android-intent locale
1个回答
0
投票

我最终在反编译的Settings.apk的res \ xml \ settings_development.xml中找到了所需的额外内容:

<extra android:name="hideDevLanguages" android:value="false" />

因此,adb shell中的工作命令行是:

am start -n com.android.settings/.LocalePicker --ez hideDevLanguages false
© www.soinside.com 2019 - 2024. All rights reserved.