package com.jqmobile.core.android.time.impl; import android.content.Context; import android.database.Cursor; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.Uri; import android.text.TextUtils; import android.util.Log; public class CheckApnType { /** Called when the activity is first created. */ public static final String CTWAP = "ctwap"; public static final String CMWAP = "cmwap"; public static final String WAP_3G = "3gwap"; public static final String UNIWAP = "uniwap"; public static final int TYPE_NET_WORK_DISABLED = 0;// ���粻���� public static final int TYPE_CM_CU_WAP = 4;// �ƶ���ͨwap10.0.0.172 public static final int TYPE_CT_WAP = 5;// ����wap 10.0.0.200 public static final int TYPE_OTHER_NET = 6;// ����,�ƶ�,��ͨ,wifi ��net���� public static Uri PREFERRED_APN_URI = Uri .parse("content://telephony/carriers/preferapn"); CheckApnType(){ } /*** * �ж�Network�������ͣ���ͨ�ƶ�wap������wap������net�� * * */ public static int checkNetworkType(Context mContext) { try { final ConnectivityManager connectivityManager = (ConnectivityManager) mContext .getSystemService(Context.CONNECTIVITY_SERVICE); final NetworkInfo mobNetInfoActivity = connectivityManager .getActiveNetworkInfo(); if (mobNetInfoActivity == null || !mobNetInfoActivity.isAvailable()) { // ע��һ�� // NetworkInfo Ϊ�ջ��߲������õ�ʱ�������Ӧ���ǵ�ǰû�п������磬 // ������Щ���Ż������Կ��������� // ���Ե���net���紦����Ȼ�����������硣 // ��Ȼ����socket�в�׽�쳣�����ж����ж����û���ʾ���� Log.i("", "=====================>������"); return TYPE_OTHER_NET; } else { // NetworkInfo��Ϊnull��ʼ�ж����������� int netType = mobNetInfoActivity.getType(); if (netType == ConnectivityManager.TYPE_WIFI) { // wifi net���� Log.i("", "=====================>wifi����"); return TYPE_OTHER_NET; } else if (netType == ConnectivityManager.TYPE_MOBILE) { // ע����� // �ж��Ƿ����wap: // ��Ҫͨ��getExtraInfo��ȡ�����������ж����ͣ� // ��Ϊͨ��Ŀǰ���Ŷ��ֻ��Ͳ��Է��ֽ������ƴ�Ϊ#777����null�� // ���Ż���wap�������Ҫ���ƶ���ͨwap����������һ���û��������, // ���Կ���ͨ����������жϣ� final Cursor c = mContext.getContentResolver().query( PREFERRED_APN_URI, null, null, null, null); if (c != null) { c.moveToFirst(); final String user = c.getString(c .getColumnIndex("user")); if (!TextUtils.isEmpty(user)) { Log.i("", "=====================>���?" + c.getString(c .getColumnIndex("proxy"))); if (user.startsWith(CTWAP)) { Log.i("", "=====================>����wap����"); return TYPE_CT_WAP; } } } c.close(); // ע���� // �ж����ƶ���ͨwap: // ��ʵ����һ�ַ���ͨ��getString(c.getColumnIndex("proxy")��ȡ����ip // ���жϽ���㣬10.0.0.172�����ƶ���ͨwap��10.0.0.200���ǵ���wap������ // ʵ�ʿ����в��������л������ܻ�ȡ������������Ϣ����������M9 ��2.2����... // ���Բ���getExtraInfo��ȡ��������ֽ����ж� String netMode = mobNetInfoActivity.getExtraInfo(); Log.i("", "netMode ================== " + netMode); if (netMode != null) { // ͨ��apn����ж��Ƿ�����ͨ���ƶ�wap netMode = netMode.toLowerCase(); if (netMode.equals(CMWAP) || netMode.equals(WAP_3G) || netMode.equals(UNIWAP)) { Log.i("", "=====================>�ƶ���ͨwap����"); return TYPE_CM_CU_WAP; } } } } } catch (Exception ex) { ex.printStackTrace(); return TYPE_OTHER_NET; } return TYPE_OTHER_NET; } }