Android中判断网络连接是否可用

一、判断网络连接是否可用

 

public static boolean isNetworkAvailable(Context context) {   
        ConnectivityManager cm = (ConnectivityManager) context   
                .getSystemService(Context.CONNECTIVITY_SERVICE);   
        if (cm == null) {   
        } else {
       //如果仅仅是用来判断网络连接
        //则可以使用 cm.getActiveNetworkInfo().isAvailable();  
            NetworkInfo[] info = cm.getAllNetworkInfo();   
            if (info != null) {   
                for (int i = 0; i < info.length; i++) {   
                    if (info[i].getState() == NetworkInfo.State.CONNECTED) {   
                        return true;   
                    }   
                }   
            }   
        }   
        return false;   
    }

 

 

 

下面的不仅可以判断,如果没有开启网络的话,就进入到网络开启那个界面,具体代码如下:

protected boolean CheckNetwork() {
  // TODO Auto-generated method stub
     boolean flag=false;
     ConnectivityManager cwjManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
     if(cwjManager.getActiveNetworkInfo()!=null)
      flag=cwjManager.getActiveNetworkInfo().isAvailable();
     if(!flag){
      Builder b=new AlertDialog.Builder(this).setTitle("没有可用的网络").setMessage("请开启GPRS或WIFI网路连接");
      b.setPositiveButton("确定",new DialogInterface.OnClickListener() {
    
    public void onClick(DialogInterface dialog, int which) {
     // TODO Auto-generated method stub
     Intent mIntent=new Intent("/");
     ComponentName comp=new ComponentName("com.android.settings","com.android.settings.WirelessSettings");
     mIntent.setComponent(comp);
     mIntent.setAction("android.intent.action.VIEW");
     startActivity(mIntent);
     }
     
    }).setNegativeButton("取消", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {
     // TODO Auto-generated method stub
     dialog.cancel();    
    }
   }).create();
      b.show();
    }
    return flag;
 }

 

用的时候可以这样用:

if(!CheckNetwork())
         return;

 

 二、判断GPS是否打开

 

public static boolean isGpsEnabled(Context context) {   
        LocationManager lm = ((LocationManager) context   
                .getSystemService(Context.LOCATION_SERVICE));   
        List<String> accessibleProviders = lm.getProviders(true);   
        return accessibleProviders != null && accessibleProviders.size() > 0;   
    } 

 

 

下边这小段代码是用来判断手机的GPS服务是否为开启状态.如果是就提示用户GPS已经打开.

如果现在GPS 处于关闭状态,那么给用户一个提示, 然后打开GPS设置界面,让用户更改GPS为启动状态.

 

 

private void openGPSSettings()
{
LocationManager alm =
(LocationManager)this.getSystemService( Context.LOCATION_SERVICE );
if( alm.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER ) )
{
Toast.makeText( this, “GPS is already on”, Toast.LENGTH_SHORT ).show();
}
else
{
Toast.makeText( this, “Please turn on GPS”, Toast.LENGTH_SHORT ).show();
Intent myIntent = new Intent( Settings.ACTION_SECURITY_SETTINGS );
startActivity(myIntent);
}
}

 

 

初始化GPS设置

private void initGPS(){
LocationManager locationManager=(LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

//判断GPS模块是否开启,如果没有则开启
if(!locationManager.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)){
Toast.makeText(this, "GPS is not open,Please open it!", Toast.LENGTH_SHORT).show();
Intent intent=new Intent(Settings.ACTION_SECURITY_SETTINGS);
startActivityForResult(intent,0);
}
else {
Toast.makeText(this, "GPS is ready", Toast.LENGTH_SHORT);
}
}

 

 

三、判断WIFI是否打开

 

public static boolean isWifiEnabled(Context context) {   
        ConnectivityManager mgrConn = (ConnectivityManager) context   
                .getSystemService(Context.CONNECTIVITY_SERVICE);   
        TelephonyManager mgrTel = (TelephonyManager) context   
                .getSystemService(Context.TELEPHONY_SERVICE);   
        return ((mgrConn.getActiveNetworkInfo() != null && mgrConn   
                .getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED) || mgrTel   
                .getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS);   
    }

 

 

四、判断是否是3G网络

 public static boolean is3rd(Context context) {   
        ConnectivityManager cm = (ConnectivityManager) context   
                .getSystemService(Context.CONNECTIVITY_SERVICE);   
        NetworkInfo networkINfo = cm.getActiveNetworkInfo();   
        if (networkINfo != null   
                && networkINfo.getType() == ConnectivityManager.TYPE_MOBILE) {   
            return true;   
        }   
        return false;   
    }

 

 五、判断是wifi还是3g网络,用户的体现性在这里了,wifi就可以建议下载或者在线播放。

 public static boolean isWifi(Context context) {   
            ConnectivityManager cm = (ConnectivityManager) context   
                    .getSystemService(Context.CONNECTIVITY_SERVICE);   
            NetworkInfo networkINfo = cm.getActiveNetworkInfo();   
            if (networkINfo != null   
                    && networkINfo.getType() == ConnectivityManager.TYPE_WIFI) {   
                return true;   
            }   
            return false;   
        }

 

 

 

posted @ 2012-07-14 14:12  water0504  阅读(247)  评论(0编辑  收藏  举报