要求:在Settings应用添加直接勾选“打开“或”关闭“移动网络 。
1.PreferenceActivity
( 1)实现系统设置界面
WirelessSettings.java
把extends Activity改为extends PreferenceActivity 。然后把java文件中的setContentView(R.layout.main);改为addPreferencesFromResource(R.xml.preferences);
G3Enabler.java
当PreferenceActivity中的内容改变时,Android系统会自动进行保存和持久化维护,我们只需要在要用的设置界面中数据的地方进行读取就可以了。同时Android还提供了OnPreferenceClickListener和OnPreferenceChangeListener 两个与Preference相关的监听接口,当PreferenceActivity中的某一个Preference进行了点击或者改变 的操作时,都会回调接口中的函数,这样可以第一个时间向其他Activity等通知系统设置进行了改变。
WirelessSettings.xml
ListPreference是一个常用的用来进行设置操作的标签。
array.xml
2.G3Enabler
G3Enabler.java
private ITelephony mPhoneService;
//使用aidl,与电话服务进程通信,这里用作打开数据连接 和 断开数据连接
mPhoneService = ITelephony.Stub.asInterface(ServiceManager.getService(Context.TELEPHONY_SERVICE));
//打开网络...
boolean state = m PhoneService.enableDataConnectivity();
//断开网络...
mPhoneService.disableDataConnectivity();
3.拨号脚本
(1) eference-ril.c
错误:以上代码中 strcat(wstring, "/"/" AT/n"); 应该改为 strcat(wstring, "/"/" /rAT/n");
create_misc_file函数的作用是生成拨号脚本(/etc/ppp/peers/peer、/etc/ppp/chat/connect、/etc/ppp/chat/disconnect)
(2) 拨号脚本 - /etc/ppp/chat/connect
(3) 拨号脚本 - /etc/ppp/chat/disconnect
给Modern发送/K和ATH分别是什么作用?
[参考]
http://janseling.blog.163.com/blog/static/126653852201011152910167/
http://jianxiaza.blog.163.com/blog/static/8768562820101120111049565/
http://hi.baidu.com/uncolll/blog/item/919e8165289338fcf6365438.html