zoukankan      html  css  js  c++  java
  • 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;   
            }
  • 相关阅读:
    linux的一般命令------附加
    linux(4)----------ssh config详解
    linux(3)--------SSH工具的安装使用
    linux(2)-----新装linux配置
    linux(1)------vmvear虚拟机安装linux
    (3)hadoop单节点配置
    (2)hadoop之-----配置免密码登录
    (1)hadoop之----linux配置jdk环境
    BZOJ 1037 生日聚会(神DP)
    BZOJ 1046 上升序列(LIS变形)
  • 原文地址:https://www.cnblogs.com/xuewater/p/2591447.html
Copyright © 2011-2022 走看看