gpt4 book ai didi

android2.3.5 CDMA/EVDO拨号APN解决方案

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章android2.3.5 CDMA/EVDO拨号APN解决方案由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

google提供的android2.3里面,只能在GSM/WCDMA情况下才能从“设置”->“无线和网络”->“移动网络”->“接入点名称”中选择不同的apn帐号进行拨号连接,而CDMA/EVDO则没有这个功能。最近看了一下代码,简单实现了这个功能。 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 。

最后此篇关于android2.3.5 CDMA/EVDO拨号APN解决方案的文章就讲到这里了,如果你想了解更多关于android2.3.5 CDMA/EVDO拨号APN解决方案的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com