国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

android之CDMA/EVDO撥號APN的解決方法

2020-02-21 17:32:50
字體:
來源:轉載
供稿:網友

在google提供的android 2.3中,只有在GSM/WCDMA的情況下,才能選擇不同的APN賬號進行撥號連接,而cdma/evdo沒有此功能,下文是武林技術頻道小編整理的android之CDMA/EVDO撥號APN的解決方法。

1、默認的CDMA/EVDO里面連apn列表都不顯示,要先把這個挖出來。
修改packages/apps/Phone/res/xml/cdma_options.xml
添加如下內容

?

<PreferenceScreen
android:key="button_apn_key"
android:title="@string/apn_settings"
android:persistent="false">
<intent android:action="android.intent.action.MAIN"
android:targetPackage="com.android.settings"
android:targetClass="com.android.settings.ApnSettings" />
</PreferenceScreen>


還有development/data/etc/apns-conf.xml的version值改為原來的加1,原因代碼里面找。
2、修改frameworks/base/telephony/java/com/android/internal/telephony/cdma/cdmadataconnectiontracker.java的setupData函數

?

?

?


private boolean setupData(String reason) {
CdmaDataConnection conn = findFreeDataConnection();
if (conn == null) {
if (DBG) log("setupData: No free CdmaDataConnection found!");
return false;
}
mActiveDataConnection = conn;
String[] types;
if (mRequestedApnType.equals(Phone.APN_TYPE_DUN)) {
types = new String[1];
types[0] = Phone.APN_TYPE_DUN;
} else {
types = mDefaultApnTypes;
}
//mActiveApn = new ApnSetting(0, "", "", "", "", "", "", "", "", "", "",
// 0, types, "IP", "IP");
Uri PREFERRED_APN_URI = Uri.parse("content://telephony/carriers/preferapn");
ContentResolver cResolver = phone.getContext().getContentResolver();
Cursor cr = cResolver.query(PREFERRED_APN_URI, null, null, null, null);
cr.moveToFirst();
String user = cr.getString(cr.getColumnIndex("user"));
String pass = cr.getString(cr.getColumnIndex("password"));
String apn = cr.getString(cr.getColumnIndex("apn"));
Log.e(LOG_TAG, "get apn : apn=" + apn + ", user=" + user + ", password=" + pass);
mActiveApn = new ApnSetting(0, "", "", apn, "", "", "", "", "", user, pass,
, types, "IP", "IP");
Message msg = obtainMessage();
msg.what = EVENT_DATA_SETUP_COMPLETE;
msg.obj = reason;
conn.connect(msg, mActiveApn);
setState(State.INITING);
phone.notifyDataConnection(reason);
return true;
}


3、修改frameworks/base/telephony/java/com/android/internal/telephony/cdma/cdmadataconnection.java的onConnect函數:

?

?

?


phone.mCM.setupDataCall(
Integer.toString(RILConstants.SETUP_DATA_TECH_CDMA),
Integer.toString(dataProfile),
//null, null, null,  //原來傳進撥號的參數都是空的!!!
cp.apn.apn, cp.apn.user, cp.apn.password,
Integer.toString(RILConstants.SETUP_DATA_AUTH_PAP_CHAP),
RILConstants.SETUP_DATA_PROTOCOL_IP, msg);


4、修改frameworks/base/telephony/java/com/android/internal/telephony/gsm/ApnSetting.java中對ApnSetting的定義,將其成員類型全部設為public

上文是關于android之CDMA/EVDO撥號APN的解決方法,相信大家都有了一定的了解,想要了解更多的技術信息,請繼續關注武林技術頻道吧!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 青龙| 招远市| 武宣县| 特克斯县| 桦川县| 金阳县| 小金县| 勐海县| 桐庐县| 勃利县| 壶关县| 蕲春县| 聂拉木县| 济南市| 桓台县| 夹江县| 灵丘县| 沙雅县| 嘉义县| 绥滨县| 宜宾县| 丰顺县| 静安区| 扶绥县| 德兴市| 博罗县| 灵石县| 阳原县| 滨州市| 宜兰市| 新余市| 宜兰市| 新巴尔虎右旗| 贵定县| 化隆| 平舆县| 正阳县| 尚志市| 兴和县| 敦化市| 太湖县|