Red de conocimiento informático - Material del sitio web - Cómo agregar opciones de configuración en la configuración del sistema

Cómo agregar opciones de configuración en la configuración del sistema

Propósito: En el menú de configuración de invocación, agregue el menú de configuración dect y luego agregue checkBOxPreference

para habilitar el módulo de hardware.

------------------------

Actualmente estás trabajando en un proyecto, necesitas agregar una opción para habilitar el módulo de hardware. Esto implica conocer la configuración de preferencias. Infórmese en línea. El método se registra aquí.

1. Las aplicaciones de configuración generalmente se encuentran en el directorio: IconPreferenceScreen

android: key="call_settings"

settings: icon="@drawable/ic_settings_call"

android: title="@string/call_settings_title"gt;

lt;intent

android: action="android.intent.action.

android: targetPackage="com.android.phone"

android: targetClass="com.android.phone.CallFeaturesSetting" /gt;

lt;/com. android .settings.IconPreferenceScreengt;

lt; com.android.settings.IconPreferenceScreengt;

android: targetClass="com.android.phone.CallFeaturesSetting" /gt;

android:action="android.intent.action.MAIN"

android:targetPackage="com.android.phone"

android:targetClass="com.android. teléfono .CallFeaturesSetting" /gt;

lt;/com.android.settings.IconPreferenceScreengt;

android: targetPackage="com.android.phone"

android :targetClass="com.android.phone.CallFeaturesSetting"

targetPackage: representa el nombre del paquete de software, en función del cual podemos encontrar la ruta a la configuración de llamadas

. targetClass: representa el diseño. El archivo al que hace referencia esta clase. Según esta clase, podemos saber que nuestra configuración de función de llamada se administra en este archivo www.55zm.com

2. nombre, podemos ver que en \packages. En el directorio \apps\Phone, ingrese al directorio \res\xml

Busque el archivo de diseño de llamada: call_feature_setting.xml. Fácil de encontrar el archivo de diseño.

El contenido es el siguiente:

Código Java

lt; PreferenceCategory android: key="button_misc_category_key"

android: title= "@string /other_settings"

android: persistente="false" /gt;

lt;! -- Configuración de DECT --gt;

lt; PreferenceScreen

android:key="dect_settings"

android:title="@string/dect_module_title"

android: resumen="@string/dect_module_title" gt;

lt; intención

android: action="android.intent.action. PRINCIPAL"

android: targetPackage="com.android.phone"

android: targetClass="com.android.phone.DectSettings" /gt;

lt;/PreferenceScreengt;

lt;CheckBoxPreference

android:key="button_auto_retry_key"

android:title="@string/auto_retry_mode_title"

android: persistente="false"

android: resumen="@string/auto_retry_mode_summary"/gt;

lt; PreferenceCategory android:key="button_misc_category_key"

android:title="@string/other_settings"

android:persistent="false" /gt;

lt;! -- Configuración de DECT --gt;

lt; PreferenceScreen

android:key="dect_settings"

android:title="@string/dect_module_title"

android: resumen="@string/dect_module_title" gt;

lt; intención

android: action="android.intent.action. PRINCIPAL"

android: targetPackage="com.android.phone"

android: targetClass="com.android.phone.DectSettings" /gt;

lt;/PreferenceScreengt;

lt;CheckBoxPreference

android:key="b

utton_auto_retry_key"

android:title="@string/auto_retry_mode_title"

android:persistent="false"

android:summary="@string/auto_retry_mode_summary" /gt;

La configuración de Dect se agregó recientemente al menú de configuración. Nuestro principio es tratar de no hacer muchas modificaciones, por lo que se agrega un nuevo archivo de clase, PreferenceScreen, para administrar las opciones del menú de DECt.

android: targetPackage="com.android.phone"

android: targetClass="com.android.phone.DectSettings"

Especificamos el nombre del paquete y nombre de clase, debido a que se trata de una actividad, debemos ingresar al directorio del teléfono y modificar el archivo

AndroidManifest.xml para especificar el nombre de clase de la actividad que se iniciará

. Código Java

lt; actividad android: name="CdmaCallOptions"

android: label="@string/cdma_options"gt;

lt; ;

lt; acción android: nombre="android.intent.action.MAIN" /gt;

lt; /actividadgt;

lt;! -- actividad dect --gt;

lt; actividad android: nombre="DectSettings"

android: label=" @string/dect_module_title"gt;

lt;! intent-filtergt;

lt;acción android: name="android.intent.action.intent.action.MAIN" /gt ;

lt;/intent-filtergt;

lt;/activitygt;

lt;! -- actividad dect --gt;

lt; actividad android: nombre ="DectSettings"

android: label="@string/dect_module_title"gt;

lt;! p>lt; acción android: nombre="android.intent.action.MAIN" /gt;

lt;/intent-filtergt;

lt;/actividad gt;

3. Modificación Finalmente, tenemos que agregar el archivo de diseño PREFERENCIA en esta actividad.

En el directorio Phone\res\xml, agregue dect_settings.xml

Código Java

lt;?xml version="1.0" encoding="utf - 8"? gt;

lt; PreferenceScreen xmlns: android="/apk/res/android"

android: title="@string/dect_module_title"gt;

lt.CheckBoxPreference

android:key="button_dect_module_key"

android:title="@string/dect_module_title"

android.CheckBoxPreference(pl. Preferencias de marquesina) defaultValue="true"

android: resumenOn="@string/dect_module_start"

android: resumenOff="@string/dect_module_stop"

/ gt;

lt;/PreferenceScreengt;

lt;?xml version="1.0" encoding="utf-8"? gt;

lt ; xmlns: android="/apk/res/android"

android: title="@string/dect_module_title"gt;

lt.CheckBoxPreference

android: key="button_dect_module_key"

android: title="@string/dect_module_title"

android.CheckBoxPreference (preferencia de casilla de verificación) defaultValue="true"

android :summaryOn="@string/dect_module_start"

android:summaryOff="@string/dect_module_stop"

/gt;

lt; / PreferenceScreengt;

Ok, el diseño general se ha completado

4. Agregue el directorio \packages\apps\Phone\src\com\android\phone

DectSettings.java file

Cargar archivo de diseño:

//dect xml

addPreferencesFromResource(R.xml.detect_settings);

Dentro Cuando viene Al servicio MidPhoneServce lo agregué yo mismo, principalmente para manejar el hardware a través de la interfaz AIDL de este servicio. Si desea obtener información sobre los servicios del sistema, busque información en línea.

>PreferenceScreen;

importar android.preference.SharedPreferences

importar android.content.SharedPreferences.Editor

importar android.content.SharedPreferences.Editor

p> p>

importar android.content.pm.SharedPreferences.Editor;

importar android.content.pm.ActivityInfo

importar android.content.pm.PackageManager;

importar android.content.pm.ActivityInfo

importar android.content.pm.PackageManager; p>

importar android.content.pm.Settings;

la clase pública DectSettings extiende PreferenceActivity {

string final estática privada TAG = "DectSettings";

cadena final estática privada BUTTON_DECT_KEY = "botón _dect_module_key";

CheckBoxPreference privado mButtonDect;

servicio IMidPhone público midphoneservice = null;

@Override

vacío protegido onCreate(carámbano de paquete) {

super .onCreate(icicle);

//dect xml

addPreferencesFromResource(R.xml. dect_settings) ;

mButtonDect = (CheckBoxPreference)findPreference(BUTTON_DECT_KEY);

mButtonDect.setPersistent(false);

if(mButtonDect ! = null) {

int dect_state = Configuración.System.getInt(

getContentResolver(), Settings.System.DECT_SAVED_STAT);

mButtonDect = DECT_SAVED_STAT;

mButtonDect = DECT_SAVED_STATdect_state);

Log.e(TAG, " configuración:-------------gt;" dect_state);

}

}

}

@Override

public boolean onPreferenceTreeClick(PreferenceScreen preferenciaScreen, Preferencia preferencia) {

if (preferencia =

= mButtonDect ) {

int dect = mButtonDect.isChecked() ?1: 0;

estado booleano;

si (dect == 1) p>

estado = verdadero;

else

estado = falso;

prueba{

midphoneservice = IMidPhoneService. Stub. asInterface(ServiceManager.e(TAG, "settings:-------------gt;" dect);

} catch (RemoteException e) {

e.printStackTrace();

}

devuelve verdadero;

}

devuelve falso;

}

@Override

protected void onResume() {

super.onResume();

if (mButtonDect ! = nulo) {

mButtonDect.setChecked(Settings.System.getInt(

getContentResolver(),

).