100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 移动联通电信wap和net接入点判断

移动联通电信wap和net接入点判断

时间:2023-12-03 13:08:45

相关推荐

移动联通电信wap和net接入点判断

在android网络开发中,对接入点判断是必不可少的,因为连接网络的时候如果是wap接入点,需要设置代。移动联通wap(代理相同:10.0.0.172:80),电信wap(代理:10.0.0.200:80)

接入点类型: Net网络:运营商(移动联通电信)net网络,wifi,usb网络共享

Wap网络:移动联通wap(代理相同:10.0.0.172:80),电信wap(代理:10.0.0.200:80)

这样看来就可以抽象出三种网络类型:(1)联通移动wap(2)电信wap,(3)其他的都是net类型。

还有一些实际项目中需要注意的地方,我已经在代码中写注解,分享给大家。[java]view plaincopyprint? importcom.shoowc.R;importandroid.app.Activity;importandroid.content.Context;importandroid.database.Cursor;.ConnectivityManager;workInfo;.Uri;importandroid.os.Bundle;importandroid.text.TextUtils;importandroid.util.Log;publicclassCheckApnTypeActivityextendsActivity{/**Calledwhentheactivityisfirstcreated.*/publicstaticfinalStringCTWAP="ctwap";publicstaticfinalStringCMWAP="cmwap";publicstaticfinalStringWAP_3G="3gwap";publicstaticfinalStringUNIWAP="uniwap";publicstaticfinalintTYPE_NET_WORK_DISABLED=0;//网络不可用publicstaticfinalintTYPE_CM_CU_WAP=4;//移动联通wap10.0.0.172publicstaticfinalintTYPE_CT_WAP=5;//电信wap10.0.0.200publicstaticfinalintTYPE_OTHER_NET=6;//电信,移动,联通,wifi等net网络publicstaticUriPREFERRED_APN_URI=Uri.parse("content://telephony/carriers/preferapn");@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);checkNetworkType(this);}/****判断Network具体类型(联通移动wap,电信wap,其他net)***/publicstaticintcheckNetworkType(ContextmContext){try{finalConnectivityManagerconnectivityManager=(ConnectivityManager)mContext.getSystemService(Context.CONNECTIVITY_SERVICE);finalNetworkInfomobNetInfoActivity=connectivityManager.getActiveNetworkInfo();if(mobNetInfoActivity==null||!mobNetInfoActivity.isAvailable()){//注意一://NetworkInfo为空或者不可以用的时候正常情况应该是当前没有可用网络,//但是有些电信机器,仍可以正常联网,//所以当成net网络处理依然尝试连接网络。//(然后在socket中捕捉异常,进行二次判断与用户提示)。Log.i("","=====================>无网络");returnTYPE_OTHER_NET;}else{//NetworkInfo不为null开始判断是网络类型intnetType=mobNetInfoActivity.getType();if(netType==ConnectivityManager.TYPE_WIFI){//wifinet处理Log.i("","=====================>wifi网络");returnTYPE_OTHER_NET;}elseif(netType==ConnectivityManager.TYPE_MOBILE){//注意二://判断是否电信wap://不要通过getExtraInfo获取接入点名称来判断类型,//因为通过目前电信多种机型测试发现接入点名称大都为#777或者null,//电信机器wap接入点中要比移动联通wap接入点多设置一个用户名和密码,//所以可以通过这个进行判断!finalCursorc=mContext.getContentResolver().query(PREFERRED_APN_URI,null,null,null,null);if(c!=null){c.moveToFirst();finalStringuser=c.getString(c.getColumnIndex("user"));if(!TextUtils.isEmpty(user)){Log.i("","=====================>代理:"+c.getString(c.getColumnIndex("proxy")));if(user.startsWith(CTWAP)){Log.i("","=====================>电信wap网络");returnTYPE_CT_WAP;}}}c.close();//注意三://判断是移动联通wap://其实还有一种方法通过getString(c.getColumnIndex("proxy")获取代理ip//来判断接入点,10.0.0.172就是移动联通wap,10.0.0.200就是电信wap,但在//实际开发中并不是所有机器都能获取到接入点代理信息,例如魅族M9(2.2)等...//所以采用getExtraInfo获取接入点名字进行判断StringnetMode=mobNetInfoActivity.getExtraInfo();Log.i("","netMode=================="+netMode);if(netMode!=null){//通过apn名称判断是否是联通和移动wapnetMode=netMode.toLowerCase();if(netMode.equals(CMWAP)||netMode.equals(WAP_3G)||netMode.equals(UNIWAP)){Log.i("","=====================>移动联通wap网络");returnTYPE_CM_CU_WAP;}}}}}catch(Exceptionex){ex.printStackTrace();returnTYPE_OTHER_NET;}returnTYPE_OTHER_NET;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。