Cómo agregar opciones de configuración en la configuración del sistema
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; p>
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; p>
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> 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(),
).