日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

android系统设置在哪里,android-如何在系统settings里添加设置选项

發布時間:2023/12/15 windows 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android系统设置在哪里,android-如何在系统settings里添加设置选项 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

版本:2.3.1

目的:在通話設置菜單下,添加一dect設置菜單,里面再添加一checkBOxPreference

來使能硬件模塊。

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

目前做的項目,需要在系統settings里面添加一選項來使能硬件模塊,里面涉及到的preference知識,請網上了解,這里記錄下方法。

1,settings 應用一般在 目錄:\packages\apps\Settings,我們先找到通話設置的布局位置,看看它在那個包路徑下,進入\packages\apps\Settings\res\xml,打開settings.xml文件:

Java代碼

android:key="call_settings"

settings:icon="@drawable/ic_settings_call"

android:title="@string/call_settings_title">

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

android:targetPackage="com.android.phone"

android:targetClass="com.android.phone.CallFeaturesSetting"?/>

android:targetPackage="com.android.phone"

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

targetPackage:表示包名,根據此我們可以找到通話設置的路徑。

targetClass:表示此布局文件被那個類所引用,根據此類,我們可以知道在那個文件里面管理我們的通話設置功能。

2.根據包名,我們可以看到在\packages\apps\Phone 目錄下,進入\res\xml目錄下

找到通話布局文件:call_feature_setting.xml,根據類名,很容易找到布局文件。

里面內容如下:

Java代碼

android:title="@string/other_settings"

android:persistent="false"?/>

android:key="dect_settings"

android:title="@string/dect_module_title"

android:summary="@string/dect_module_title"?>

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

android:targetPackage="com.android.phone"

android:targetClass="com.android.phone.DectSettings"?/>

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

android:label="@string/cdma_options">

android:label="@string/dect_module_title">

3.修改好后,我們必須在此activity里添加preference布局文件。

在此目錄Phone\res\xml下,新增dect_settings.xml

Java代碼

android:title="@string/dect_module_title">

android:key="button_dect_module_key"

android:title="@string/dect_module_title"

android:defaultValue="true"

android:summaryOn="@string/dect_module_start"

android:summaryOff="@string/dect_module_stop"

/>

好了,總體布局已經完成

4.在\packages\apps\Phone\src\com\android\phone目錄下

新增DectSettings.java文件

加載布局文件:

//dect xml

addPreferencesFromResource(R.xml.dect_settings);

里面涉及到的MidPhoneServce服務,是自己添加的,主要通過此服務的AIDL接口跟硬件打交道。想了解系統服務,請網上查找資料。

源碼如下:

Java代碼

package?com.android.phone;

import?android.content.DialogInterface;

import?android.os.AsyncResult;

import?android.os.Bundle;

import?android.os.Handler;

import?android.os.Message;

import?android.preference.CheckBoxPreference;

import?android.preference.Preference;

import?android.preference.PreferenceActivity;

import?android.preference.PreferenceScreen;

import?android.content.SharedPreferences;

import?android.content.SharedPreferences.Editor;

import?android.content.pm.ActivityInfo;

import?android.content.pm.PackageManager;

import?android.content.pm.ResolveInfo;

import?android.os.Bundle;

import?android.os.Handler;

import?android.util.Log;

import?android.content.Context;

import?com.android.phone.R;

import?android.os.IMidPhoneService;

import?android.os.RemoteException;

import?android.os.ServiceManager;

import?android.provider.Settings;

public?class?DectSettings?extends?PreferenceActivity?{

private?static?final?String?TAG?=?"DectSettings";

private?static?final?String?BUTTON_DECT_KEY??=?"button_dect_module_key";

private?CheckBoxPreference?mButtonDect;

public?IMidPhoneService?midphoneservice?=?null;

@Override

protected?void?onCreate(Bundle?icicle)?{

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?=?Settings.System.getInt(

getContentResolver(),Settings.System.DECT_SAVED_STATE,?1);

mButtonDect.setChecked(?dect_state!=?0);

Settings.System.putInt(getContentResolver(),

Settings.System.DECT_SAVED_STATE,dect_state);

Log.e(TAG,"settings:------------->"?+?dect_state);

}

}

@Override

public?boolean?onPreferenceTreeClick(PreferenceScreen?preferenceScreen,?Preference?preference)?{

if?(preference?==?mButtonDect?)?{

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

boolean?state;

if(dect?==?1)

state?=?true;

else

state?=?false;

try{

midphoneservice?=?IMidPhoneService.Stub.asInterface(ServiceManager.getService("midphone"));

Settings.System.putInt(getContentResolver(),

Settings.System.DECT_SAVED_STATE,dect);

midphoneservice.setDectEnabled(state);

Log.e(TAG,"settings:------------->"?+?dect);

}?catch?(RemoteException?e)?{

e.printStackTrace();

}

return?true;

}

return?false;

}

@Override

protected?void?onResume()?{

super.onResume();

if?(mButtonDect?!=?null)?{

mButtonDect.setChecked(Settings.System.getInt(

getContentResolver(),

Settings.System.DECT_SAVED_STATE,?1)?!=?0);

}

}

}

5.編譯,燒錄。

相對參考:

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的android系统设置在哪里,android-如何在系统settings里添加设置选项的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。