如何启动Android SubSettings Fragment?

时间:2014-02-18 04:46:44

标签: android

例如,如何启动用户设置?它没有作为自己的Activity实现,所以我不知道如何启动它。

以下是一些其他类似的问题,但这些问题要么更一般,要么更具体。我的问题是关于启动任意SubSettings片段。

How do I call a specific PreferenceFragment from a PreferenceActivity?

Show only wireless system settings on Android 3

2 个答案:

答案 0 :(得分:9)

您可以通过启动SubSettings Activity并使用现有Android PreferenceFragment子类的相应完全限定类名包含:android:show_fragment extra来启动大多数Android设置子屏幕。

例如,要启动UserSettings:

adb shell am start -n com.android.settings/com.android.settings.SubSettings -e :android:show_fragment com.android.settings.users.UserSettings

启动DeviceInfoSettings:

adb shell am start -n com.android.settings/com.android.settings.SubSettings -e :android:show_fragment com.android.settings.DeviceInfoSettings

这些示例使用'adb shell am start',但原则上您可以在Java代码中调用它们(编辑:不幸的是,您需要使用系统密钥进行签名,否则您将获得SecurityException)。请注意,此附加项的键在其前面有一个冒号。要查找其他设置,请检查Android源代码并在packages / apps / Settings中查找PreferenceFragment的子类。

Froyo和之前的情况有所不同。在那些日子里,活动被用来实现设置子屏幕,因此可以通过使用ComponentName或action String调用startActivity()的常用方法直接启动到子屏幕(例如SoundAndDisplaySettings)。此机制仍适用于某些“设置”子屏幕。例如,要启动wifi选择器,您可以使用

adb shell am start -a android.net.wifi.PICK_WIFI_NETWORK

答案 1 :(得分:0)

对于MM:

am start -n com.android.settings/com.android.settings.SubSettings -e :settings:show_fragment com.android.settings.applications.RunningServices