Android6.0 Settings是通过加载dashboard_categories.xml,获取显示列表,所以在6.0上可以直接在dashboard_categories.xml添加icon、title、summary,同时也可以添加目标fragment和Intent.
Android 7.0是通过在Androidmanifest.xml中配置intent-filter的Action,然后对指定的Action进行搜索获取需要显示的列表项
Settings中添加一个菜单选项
需要启动的页面代码在Settings中,直接按如下1、2、3步在Settings的AndroidManifest.xml中添加即可
<activity android:name="Settings$DataUsageSummaryActivity"
android:label="@string/data_usage_summary_title"
android:icon="@mipmap/ic_settings_data_usage3"
android:taskAffinity="">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="com.android.settings.SHORTCUT" />
</intent-filter>
<!-- 1.SettingsActivity通过该过滤器获取这个选项,priority="1"表示选项的位置顺序数字由高到底排序 -->
<intent-filter android:priority="1">
<action android:name="com.android.settings.action.SETTINGS" />
</intent-filter>
<!-- 2.表示该菜单项在 wireless的分类中 -->
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.wireless" />
<!-- 3.启动fragment -->
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.datausage.DaaUsageSummary" />
<!-- 3.启动activity(和3.启动fragment二选一) -->
<meta-data android:name="com.android.settings.ACTIVITY_ACTION"
android:value="com.android.settings.HardKey" />
如果属于第三方apk,我们需要将如上配置写在在第三方apk的AndroidManifest.xml文件中,同时添加icon,title等信息(完全不需要修改Settings代码来添加一个菜单选项),如下:
第三方apk的 AndroidManifest.xml中添加:
<activity
android:name=".cloud.CloudServiceActivity"
android:exported="true"
android:launchMode="singleInstance"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="com.qucii.usercenter.cloud.CloudServiceActivity" />
<!-- 1.Settings中会通过这个action搜索到该activity -->
<action android:name="com.android.settings.action.EXTRA_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<!-- 2.SettingsActivity通过该过滤器获取这个选项,priority="1"表示选项的位置顺序数字由高到底排序 -->
<intent-filter android:priority=