7.0settings定制

2022-07-30,,

android\frameworks\base\packages\SettingsLib 7.0重构Settings后多出来的部分

android\frameworks\base\packages\SettingsProvider settings数据库相关

android\packages\apps\Settings Settings相关

android\frameworks\base\core\java\android\provider settings数据库字段定义相关

android\packages\providers\MediaProvider铃声相关

android\packages\screensavers屏保相关

android\packages\inputmethods输入法相关

android\packages\apps\Settings

  • src
    • com.android.settings Settings应用整体所用的java文件
    • com.android.settings.accessibility 辅助功能相关
    • com.android.settings.accounts 账户相关
    • com.android.settings.application 应用管理相关
    • com.android.settings.backup 备份相关
    • com.android.settings.bluetooth 蓝牙相关
    • com.android.settings.dashboard Settings主界面相关
    • com.android.settings.datausage 数据流量相关
    • com.android.settings.deletionhelper
    • com.android.settings.deviceinfo 关于手机相关
    • com.android.settings.display 显示相关
    • com.android.settings.drawable 菜单图片相关
    • com.android.settings.fingerprint 指纹相关
    • com.android.settings.fuelgauge
    • com.android.settings.gestures 手势相关
    • com.android.settings.inputmethod 输入法相关
    • com.android.settings.localepicker 语言相关
    • com.android.settings.location 位置相关
    • com.android.settings.nfc nfc相关
    • com.android.settings.notification 通知相关相关
    • com.android.settings.overlay
    • com.android.settings.password 密码相关
    • com.android.settings.print 打印相关
    • com.android.settings.qstile
    • com.android.settings.search 快速搜索相关
    • com.android.settings.sim SIM卡相关
    • com.android.settings.support
    • com.android.settings.tts tts播报相关
    • com.android.settings.users 用户相关
    • com.android.settings.utils 工具类
    • com.android.settings.voice
    • com.android.settings.vpn2
    • com.android.settings.wfd
    • com.android.settings.widget 小部件相关
    • com.android.settings.wifi wifi相关
  • AndroidManifest.xml 清单文件

settings_system.xml 所有的偏好设置对系统的所有用户公开,第三方APP有读没有写的权限;

settings_global.xml 包含各种各样的用户偏好系统设置;

settings_secure.xml 安全性的用户偏好系统设置,第三方APP有读没有写的权限

androidManifiel

<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 -->

    <meta-data android:name="com.android.settings.ACTIVITY_ACTION"
    android:value="com.android.settings.HardKey" />



 第三方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="1">

                <action android:name="com.android.settings.action.SETTINGS" />

            </intent-filter>

            <!-- 3.表示该菜单项在 wireless的分类中 -->

            <meta-data android:name="com.android.settings.category"
                android:value="com.android.settings.category.wireless" />

                <!-- 4.settings中显示的标题 -->

            <meta-data android:name="com.android.settings.title"
                android:resource="@string/app_name" />

                <!-- 5.settings中显示的描述 -->

            <meta-data android:name="com.android.settings.summary"
                android:resource="@string/app_name" />

                <!-- 6.settings中显示的图标 -->

            <meta-data android:name="com.android.settings.icon"
                android:resource="@mipmap/ic_launcher" />
        </activity>

隐藏条目:(注释掉下面条件)

       </intent-filter>  
        <intent-filter android:priority="9">//在category中的物理位置(按优先级排序时用到,并不是指第9个位置,数越大优先级越大越靠前)  
            <action android:name="com.android.settings.action.SETTINGS" />//指定此项在settings中显示  
       </intent-filter>  

隐藏suggestion

         1.suggestion_title.xml
          2.suggestion_header.xml
            两个布局直接gone掉
       DashboardAdapter.java 

隐藏 condition_card.xml 直接隐藏

隐藏二级界面:

    WirelessSettings.java 
            onCreat 里面 removePreference(KEY_TOGGLE_AIRPLANE);
    onResume 里面remove 掉WLAN设置

三级界面:

关于车机项 裁剪:

4.字符串修改,修改原来的不生效的情况下,自己重新添加字段,即可生效。

本文地址:https://blog.csdn.net/weixin_38148680/article/details/108151435

《7.0settings定制.doc》

下载本文的Word格式文档,以方便收藏与打印。