现在的位置: 首页 > 综合 > 正文

Android 网络链接判断

2013年12月13日 ⁄ 综合 ⁄ 共 2686字 ⁄ 字号 评论关闭

Android 网络连接判断

1.网络连接类型判断
NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo(); 
activeNetInfo.getType()==ConnectivityManager.TYPE_WIFI/TYPE_MOBILE
或者

  1. ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 
  2. if (connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED) 
  3. text.setText("wifi方式连接"); 
  4. if (connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED) 
  5. text.setText("GPRS方式连接");

如果拟开发一个网络应用的程序,首先考虑是否接入网络,在Android手机中判断是否联网可以通过 ConnectivityManager 类的isAvailable()方法判断,首先获取网络通讯类的实例 ConnectivityManager cwjManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); ,使用cwjManager.getActiveNetworkInfo().isAvailable(); 来返回是否有效,如果为True则表示当前Android手机已经联网,可能是WiFi或GPRS、HSDPA等等,具体的可以通过
ConnectivityManager 类的getActiveNetworkInfo() 方法判断详细的接入方式,需要注意的是有关调用需要加入这个权限,android开发网提醒大家在真机上Market和Browser程序都使用了这个方法,来判断是否继续,同时在一些网络超时的时候也可以检查下网络连接是否存在,以免浪费手机上的电力资源。
android 中查看当前是否联网 
方法如下: 
ConnectivityManager cManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 
NetworkInfo info = cwjManager.getActiveNetworkInfo(); 
if (info != null && info.isAvailable()){ 
//do something 
//能联网 
return true; 
}else{ 
//do something 
//不能联网 
return false; 

如果为True则表示当前Android手机已经联网,可能是WiFi或GPRS、HSDPA等等,具体的可以通过 ConnectivityManager 类的getActiveNetworkInfo() 方法判断详细的接入方式。 

同时要在manifest里面加个权限 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

2、其中选择接入点的函数可以参考
public int startUsingNetworkFeature (int networkType, String feature)。
3.GPRS网络连接类型(cmwap/cmnet)程序判断
本来想通过contenprovider将APN设置的数据库当前选择读出来,但似乎在我的HTC G2上无法运行。后来想直接通过读取网络连接信息来得到相关连接类型,涉及类包括:ConnectivityManager以及NetworkInfo。主要在getExtraInfo()得到类型结果。不多说,贴代码如下: 

  1. ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService( Context.CONNECTIVITY_SERVICE ); 
  2. NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
  3. NetworkInfo mobNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE ); if( mobNetInfo != null )
  4. {
  5. Toast.makeText( this, "Mobile Network Type : " + mobNetInfo.getExtraInfo(), Toast.LENGTH_SHORT ).show();
  6. }

}

注:

判断网络类型可以直接通过networkInfo.getType()的返回值来判断。

如:

Context context = listActivity.getApplicationContext();//获取应用上下文
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);//获取系统的连接服务
NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();//获取网络的连接情况
if(activeNetInfo.getType()==ConnectivityManager.TYPE_WIFI){
//判断WIFI网
}else if(activeNetInfo.getType()==ConnectivityManager.TYPE_MOBILE) {
//判断3G网
}

可能会用到:

// 跳转到无线网络设置界面
startActivity(new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS));
// 跳转到无限wifi网络设置界面
startActivity(new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS));

抱歉!评论已关闭.