若要app在settings裏面添加一個開關選項,從Android7.0開始咱們只須要在AndroidManifest裏面簡單設置便可。java
本文提供的是Android 7.1.1設備上運行的效果圖android
先來一張效果圖:網絡
完成以上功能的兩個關鍵點:app
1. AndroidManifest的設置:less
<activity android:name=".HardKey" android:taskAffinity="" android:label="@string/app_name" android:icon="@drawable/ic_accessibility_generic"> <intent-filter android:priority="7"> <action android:name ="com.android.settings.MANUFACTURER_APPLICATION_SETTING"/> </intent-filter> <meta-data android:name="com.android.settings.category" android:value="com.android.settings.category.system" /> <meta-data android:name="com.android.settings.ACTIVITY_ACTION" android:value="com.android.settings.HardKey" /> <meta-data android:name="com.android.settings.icon" android:resource="@drawable/ic_accessibility_generic" /> </activity>
action 必定是 com.android.settings.MANUFACTURER_APPLICATION_SETTINGspa
<meta-data android:name="com.android.settings.category" android:value="com.android.settings.category.system" />
這裏表示要把該Item放在Settings下面的「系統」這個大類下。
在Android 7.0上從Settings的源碼能夠看到有以下四個分類: 無線和網絡, 設備, 我的, 系統,這些分類一樣適用於Android8.0設備上。
<string name="category_key_wireless">com.android.settings.category.wireless</string> <string name="category_key_device">com.android.settings.category.device</string> <string name="category_key_personal">com.android.settings.category.personal</string> <string name="category_key_system">com.android.settings.category.system</string>
HardKey 繼承於Activity 就是一個簡單展現頁面的類,點擊該item能夠展現一個頁面。code
2.這個應用的apk必定要用系統簽名。blog
這些配置僅限於item展現在Settings的一級頁面,二級頁面咱們仍然須要改動Settings的源碼才能夠添加進去Item。