当前位置:操作系统 > 安卓/Android >>

如何在系统settings里添加设置选项

版本:2.3.1
目的:在通话设置菜单下,添加一dect设置菜单,里面再添加一checkBOxPreference
来使能硬件模块。
-------------------------
目前做的项目,需要在系统settings里面添加一选项来使能硬件模块,里面涉及到的preference知识,请网上了解,这里记录下方法。
 
 
1,settings 应用一般在 目录:\packages\apps\Settings,我们先找到通话设置的布局位置,看看它在那个包路径下,进入\packages\apps\Settings\res\xml,打开settings.xml文件:
Java代码    
<com.android.settings.IconPreferenceScreen  
    android:key="call_settings" 
    settings:icon="@drawable/ic_settings_call" 
    android:title="@string/call_settings_title">  
    <intent  
        android:action="android.intent.action.MAIN" 
        android:targetPackage="com.android.phone" 
        android:targetClass="com.android.phone.CallFeaturesSetting" />  
</com.android.settings.IconPreferenceScreen> 
        <com.android.settings.IconPreferenceScreen
            android:key="call_settings"
            settings:icon="@drawable/ic_settings_call"
            android:title="@string/call_settings_title">
            <intent
                android:action="android.intent.action.MAIN"
                android:targetPackage="com.android.phone"
                android:targetClass="com.android.phone.CallFeaturesSetting" />
        </com.android.settings.IconPreferenceScreen>
 
 
android:targetPackage="com.android.phone" 
android:targetClass="com.android.phone.CallFeaturesSetting"
targetPackage:表示包名,根据此我们可以找到通话设置的路径。
targetClass:表示此布局文件被那个类所引用,根据此类,我们可以知道在那个文件里面管理我们的通话设置功能。 www.zzzyk.com
2.根据包名,我们可以看到在\packages\apps\Phone 目录下,进入\res\xml目录下
找到通话布局文件:call_feature_setting.xml,根据类名,很容易找到布局文件。
里面内容如下:
Java代码    
<PreferenceCategory android:key="button_misc_category_key" 
        android:title="@string/other_settings" 
        android:persistent="false" />  
          
 
<!-- Dect settings -->  
    <PreferenceScreen  
          
        android:key="dect_settings" 
        android:title="@string/dect_module_title" 
        android:summary="@string/dect_module_title" >  
        <intent  
            android:action="android.intent.action.MAIN" 
            android:targetPackage="com.android.phone" 
            android:targetClass="com.android.phone.DectSettings" />              
    </PreferenceScreen>  
      
    <CheckBoxPreference  
        android:key="button_auto_retry_key" 
        android:title="@string/auto_retry_mode_title" 
        android:persistent="false" 
        android:summary="@string/auto_retry_mode_summary"/> 
<PreferenceCategory android:key="button_misc_category_key"
        android:title="@string/other_settings"
        android:persistent="false" />
       
 
<!-- Dect settings -->
    <PreferenceScreen
           
         android:key="dect_settings"
        android:title="@string/dect_module_title"
        android:summary="@string/dect_module_title" >
        <intent
            android:action="android.intent.action.MAIN"
            android:targetPackage="com.android.phone"
            android:targetClass="com.android.phone.DectSettings" />           
    </PreferenceScreen>
   
    <CheckBoxPreference
        android:key="button_auto_retry_key"
        android:title="@string/auto_retry_mode_title"
        android:persistent="false"
        android:summary="@string/auto_retry_mode_summary"/>
 
 
Dect setting 就是新添加进入的设置菜单,我们的原则尽量不大量修改源码,所以添加一个PreferenceScreen,新增一个类文件来管理DECt菜单选项。
 
android:targetPackage="com.android.phone"
android:targetClass="com.android.phone.DectSettings"
我们指明了包名,类名后,因这是个activity,所以我们需要到Phone目录下修改
AndroidManifest.xml文件,指明启动的activity的类名.
Java代码    
      <activity android:name="CdmaCallOptions" 
          android:label="@string/cdma_options">  
          <intent-filter>  
              <action android:name="android.intent.action.MAIN" />  
          </intent-filter>  
      </activity>  
<!-- dect activity -->  
&n
补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,