如何启动Android SubSettings Fragment?

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

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

如何从PreferenceActivity调用特定的PreferenceFragment?

仅显示Android 3上的无线系统设置

Solutions Collecting From Web of "如何启动Android SubSettings Fragment?"

您可以启动大部分Android设置子屏幕,方法是启动SubSettings Activity,并包含:android:show_fragment extra以及现有Android PreferenceFragment子类的相应完全限定类名称。

例如,要启动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和以前的情况是不同的。 在那些日子里,Activities被用来实现Settings子屏幕,所以可以通过用ComponentName或action String调用startActivity()的常用方法直接启动到子屏幕(例如SoundAndDisplaySettings)。 这种机制仍然适用于某些设置子屏幕。 例如,要启动一个wifi拾取器,您可以使用

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

对于MM:

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