package com.enqualcomm.support.bean;
public class ApnSetting {
+ private String mID;
private String mNameStr;
private String mApnStr;
private String mProxyStr;
private String mMvnoTypeStr;
private String mMvnoMatchDataStr;
public ApnSetting(){}
+ public String getID(){return mID;}
+ public void setID(String id){mID=id;}
public String getmNameStr() {
return mNameStr;
}
}
@Override
public String toString() {
- return "ApnSetting [mNameStr=" + mNameStr + ", mApnStr=" + mApnStr
+ return "ApnSetting [id = "+mID+", mNameStr=" + mNameStr + ", mApnStr=" + mApnStr
+ ", mProxyStr=" + mProxyStr + ", mPortStr=" + mPortStr
+ ", mUserStr=" + mUserStr + ", mServerStr=" + mServerStr
+ ", mPasswordStr=" + mPasswordStr + ", mMmscStr=" + mMmscStr
public String toShortString() {
- return "APNSettings name = " +mNameStr+
+ return "APNSettings id = "+mID+" ,name = " +mNameStr+
" ,mcc="+mMccStr+
" ,mnc="+mMncStr+
" ,apn="+mApnStr+
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
+import android.provider.Telephony;
+import android.sim.Sim;
import android.telephony.TelephonyManager;
+import android.util.Log;
import android.widget.Toast;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneFactory;
import com.enqualcomm.support.bean.ApnSetting;
+import android.sim.SimManager;
+
+import java.lang.reflect.Method;
public class APNUtil {
+ private static Phone mPhone=null;
+ public static void enableRoaming(Context context,boolean roaming) {
+
+ String phoneFactoryName = "com.android.internal.telephony.PhoneFactory";
+ String phoneName = "com.android.internal.telephony.Phone";
+ try {
+ Class phoneFactoryClass = null;
+ phoneFactoryClass = Class.forName(phoneFactoryName);
+ Class phoneClass = Class.forName(phoneName);
+ // Get the default phone
+ if (mPhone == null) {
+ // Do the best we can
+ Method getDefaultPhone = phoneFactoryClass.getMethod("getDefaultPhone");
+ Object phoneObject = getDefaultPhone.invoke(null);
+
+ mPhone = (Phone)phoneObject;
+ }
+ ICLogger.d("updatePhone:- isRoaming =" + mPhone.getDataRoamingEnabled() +" to " +roaming);
+ mPhone.setDataRoamingEnabled(roaming);
+ } catch (Exception e) {
+ ICLogger.e(e.getMessage(),e);
+ }
+
+ }
+
+
public static String getCurrentAPN(Context context){
String APNSTR="";
APNSTR=ApnEditor.getApnEditorInstance(context).getCurrentAPN();
}
}
+ /***
+ * APNUtil.getCurrentAPN(this);
+ * APNUtil.selectAPN("240","07","NXT17.NET",this);
+ * @param mcc
+ * @param mnc
+ * @param apn
+ * @param context
+ * @return
+ */
+ public static boolean selectAPN(String mcc,String mnc,String apn,Context context) {
+ ApnEditor apnEditor=new ApnEditor(context);
+ apnEditor.setDefaultAPN(apn,mcc+mnc);
+
+ return true;
+ }
public static boolean checkAPN(String mcc,String mnc,String apn,Context context) {
// 检查系统已经写入的APN
String found="";
import android.app.AlertDialog;
import android.app.Dialog;
+import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
private final static String CURRENT_CARRIER = "ro.operator";
public final static String SPECIAL_CTCC_NUMERIC = "20404";
public final static String CTCC_ICCID = "898603,898611";
-
+ private String mID;
private static String sNotSet;
private String mName;
private String mApn;
}
- public String queryApn(String apn,String mccmnc){
+ public void setSelectedApnKey(String key) {
+ //s mSelectedKey = key;
+ ContentResolver resolver = mContext.getContentResolver();
+
+ ContentValues values = new ContentValues();
+ /* SPRD: for multi-sim @{ */
+ // values.put(APN_ID, mSelectedKey);
+ // resolver.update(PREFERAPN_URI, values, null, null);
+ values.put("apn_id", key);
+ resolver.update(
+ Telephony.Carriers.getContentUri(0, Telephony.Carriers.PATH_PREFERAPN),
+ values, null, null);
+ /* @} */
+ }
+
+ public String getSelectedApnKey() {
+ String key = null;
+
+ /* SPRD: for multi-sim @{ */
+ // Cursor cursor = getContentResolver().query(PREFERAPN_URI, new
+ // String[] {"_id"},
+ // null, null, Telephony.Carriers.DEFAULT_SORT_ORDER);
+ Cursor cursor = mContext.getContentResolver().query(
+ Telephony.Carriers.getContentUri(0, Telephony.Carriers.PATH_PREFERAPN),
+ new String[] {
+ "_id"
+ },
+ null, null, Telephony.Carriers.DEFAULT_SORT_ORDER);
+ /* @} */
+ if (cursor.getCount() > 0) {
+ cursor.moveToFirst();
+ key = cursor.getString(0);
+ }
+ cursor.close();
+ ICLogger.d(" get default apnkey "+key);
+ return key;
+ }
+ public void setDefaultAPN(String apn, String mccmnc){
+ String apnid=queryApnID(apn,mccmnc);
+ String currentapnid=apnEditor.getSelectedApnKey();
+ ICLogger.d("current APN key "+apnid +" selected APN key " + currentapnid);
+ setSelectedApnKey(apnid);
+ currentapnid=apnEditor.getSelectedApnKey();
+ ICLogger.d("after set APN key "+apnid +" selected APN key " + currentapnid);
+
+
+ }
+ public String queryApnID(String apn,String mccmnc) {
+
+ String where;
+ where = "numeric=\"" + mccmnc + "\"";
+ where += " and name!='CMCC DM'";
+ where += " and apn='"+apn+"'";
+
+ Log.d(TAG,"where = " + where + ",mccmnc =" + mccmnc);
+ mCursor = mContext.getContentResolver().query(mAPNUri, sProjection, where, null, Telephony.Carriers.DEFAULT_SORT_ORDER);
+ String apnsetings="";
+ if (mCursor.moveToFirst()) {
+
+ fill_apnSettings(mCursor,mApnSetting);
+ apnsetings+= mApnSetting.toShortString();
+ while (mCursor.moveToNext()){
+ apnsetings+=";";
+ fill_apnSettings(mCursor,mApnSetting);
+ apnsetings+= mApnSetting.toShortString();
+ }
+ }
+ if (mCursor != null) {
+ mCursor.close();
+ mCursor = null;
+ }
+ ICLogger.d("get APN "+apnsetings);
+ return mApnSetting.getID();
+ }
+
+ public String queryApn(String apn,String mccmnc){
String where;
where = "numeric=\"" + mccmnc + "\"";
where += " and name!='CMCC DM'";
-
private boolean getApnEditable(Cursor cursor) {
String version = SystemProperties.get(CURRENT_CARRIER, "default");
if ("vodafone".equalsIgnoreCase(version) ||
// SPRD: for bug 348288: while Cursor is null, return
// mFirstTime = false;
-
+ mID = (cursor.getString(ID_INDEX));
mName = (cursor.getString(NAME_INDEX));
mApn = (cursor.getString(APN_INDEX));
mProxy = (cursor.getString(PROXY_INDEX));
}
//mApnSetting
+ apnSetting.setID(checkNull(mID));
apnSetting.setmNameStr(checkNull(mName));
apnSetting.setmApnStr(checkNull(mApn));
apnSetting.setmProxyStr(checkNull(mProxy));