iteye.com/blog/1420761" pre_index="3" title="android-如何在系统settings里添加设置选项"><?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/dect_module_title">
<CheckBoxPreference
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"
/>
</PreferenceScreen>
</pre>
<br>好了,总体布局已经完成
<br>4.在\packages\apps\Phone\src\com\android\phone目录下
<br>新增DectSettings.java文件
<br>
<br>加载布局文件:
<br>//dect xml
<br><span style="color: darkred;">addPreferencesFromResource(R.xml.dect_settings);</span>
<br>里面涉及到的MidPhoneServce服务,是自己添加的,主要通过此服务的AIDL接口跟硬件打交道。想了解系统服务,请网上查找资料。
<br>
<br>源码如下:
<br><div class="dp-highlighter" id=""><div class="bar"><div class="tools">Java代码 <embed wmode="transparent" src="/javascripts/syntaxhighlighter/clipboard_new.swf" width="14" height="15" flashvars="clipboard=package%20com.android.phone%3B%0A%0Aimport%20android.content.DialogInterface%3B%0Aimport%20android.os.AsyncResult%3B%0Aimport%20android.os.Bundle%3B%0Aimport%20android.os.Handler%3B%0Aimport%20android.os.Message%3B%0Aimport%20android.preference.CheckBoxPreference%3B%0Aimport%20android.preference.Preference%3B%0Aimport%20android.preference.PreferenceActivity%3B%0Aimport%20android.preference.PreferenceScreen%3B%0Aimport%20android.content.SharedPreferences%3B%0Aimport%20android.content.SharedPreferences.Editor%3B%0Aimport%20android.content.pm.ActivityInfo%3B%0Aimport%20android.content.pm.PackageManager%3B%0Aimport%20android.content.pm.ResolveInfo%3B%0Aimport%20android.os.Bundle%3B%0Aimport%20android.os.Handler%3B%0Aimport%20android.util.Log%3B%0Aimport%20android.content.Context%3B%0Aimport%20com.android.phone.R%3B%0Aimport%20android.os.IMidPhoneService%3B%0Aimport%20android.os.RemoteException%3B%0Aimport%20android.os.ServiceManager%3B%0Aimport%20android.provider.Settings%3B%0A%0Apublic%20class%20DectSettings%20extends%20PreferenceActivity%20%7B%0A%20%20%20%20private%20static%20final%20String%20TAG%20%3D%20%22DectSettings%22%3B%0A%20%20%0A%20%20%20%20private%20static%20final%20String%20BUTTON_DECT_KEY%20%20%3D%20%22button_dect_module_key%22%3B%0A%20%20%20%20%0A%20%20%20%20private%20CheckBoxPreference%20mButtonDect%3B%0A%09public%20IMidPhoneService%20midphoneservice%20%3D%20null%3B%0A%0A%20%20%20%20%40Override%0A%20%20%20%20protected%20void%20onCreate(Bundle%20icicle)%20%7B%0A%20%20%20%20%20%20%20%20super.onCreate(icicle)%3B%0A%0A%20%20%20%20%20%20%20%09%09%2F%2Fdect%20xml%0A%09%09addPreferencesFromResource(R.xml.dect_settings)%3B%0A%0A%09%09mButtonDect%20%3D%20(CheckBoxPreference)findPreference(BUTTON_DECT_KEY)%3B%0A%09%09mButtonDect.setPersistent(false)%3B%0A%0A%09%09if(mButtonDect%20!%3D%20null)%20%7B%0A%09%09%09%0A%09%09%09int%20dect_state%20%3D%20Settings.System.getInt(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20getContentResolver()%2CSettings.System.DECT_SAVED_STATE%2C%201)%3B%0A%09%09%09mButtonDect.setChecked(%20dect_state!%3D%200)%3B%0A%09%09%09%0A%09%09%09Settings.System.putInt(getContentResolver()%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09Settings.System.DECT_SAVED_STATE%2Cdect_state)%3B%0A%09%09%09Log.e(TAG%2C%22settings%3A-------------%3E%22%20%2B%20dect_state)%3B%0A%09%09%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20%40Override%0A%20%20%20%20public%20boolean%20onPreferenceTreeClick(PreferenceScreen%20preferenceScreen%2C%20Preference%20preference)%20%7B%0A%09%09if%20(preference%20%3D%3D%20mButtonDect%20)%20%7B%0A%0A%09%09%09int%20dect%20%3D%20mButtonDect.isChecked()%20%3F%201%20%3A%200%3B%09%09%0A%09%09%09boolean%20state%3B%0A%09%09%09if(dect%20%3D%3D%201)%0A%09%09%09%09state%20%3D%20true%3B%0A%09%09%09else%0A%09%09%09%09state%20%3D%20false%3B%0A%09%09%09try%7B%0A%09%09%09%09%09midphoneservice%20%3D%20IMidPhoneService.Stub.asInterface(ServiceManager.getService(%22midphone%22))%3B%0A%09%09%09%09%09Settings.System.putInt(getContentResolver()%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09Settings.System.DECT_SAVED_STATE%2Cdect)%3B%0A%09%09%09%09%09midphoneservice.setDectEnabled(state)%3B%0A%0A%09%09%09%09%09Log.e(TAG%2C%22settings%3A-------------%3E%22%20%2B%20dect)%3B%0A%09%09%09%09%7D%20catch%20(RemoteException%20e)%20%7B%0A%09%09%09%09%09e.printStackTrace()%3B%0A%09%09%09%09%7D%0A%09%09%09return%20true%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%7D%0A%09%0A%20%20%40Override%0A%20%20%20%20protected%20void%20onResume()%20%7B%0A%20%20%20%20%20%20%20%20super.onResume()%3B%0A%0A%09%09if%20(mButtonDect%20!%3D%20null)%20%7B%0A%09%09%09mButtonDect.setChecked(Settings.System.getInt(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20getContentResolver()%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Settings.System.DECT_SAVED_STATE%2C%201)%20!%3D%200)%3B%0A%09%09%7D%0A%20%20%20%20%7D%0A%7D%0A%0A" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"> <a href="javascript:void()" title="收藏这段代码" onclick="code_favorites_do_favorite(this);return false;"><img class="star" src="/images/icon_star.png" alt="收藏代码"><img class="spinner" src="/images/spinner.gif" style="display:none"></a></div></div><ol start="1" class="dp-j"><li><span><span class="keyword">package</span><span> com.android.phone; </span></span></li><li><span> </span></li><li><span><span class="keyword">import</span><span> android.content.DialogInterface; </span></span></li><li><span><span class="keyword">import</span><span> android.os.AsyncResult; </span></span></li><li><span><span class="keyword">import</span><span> android.os.Bundle; </span></span></li><li><span><span class="keyword">import</span><span> android.os.Handler; </span></span></li><li><span><span class="keyword">import</span><span> android.
Back to home |
File page
Subscribe |
Register |
Login
| N