zoukankan      html  css  js  c++  java
  • Android中判断网络连接是否可用

    摘自:http://zhxhinfu.blog.163.com/blog/static/187571188201261893241183/

    一、判断网络连接是否可用
    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; 
    }

  • 相关阅读:
    分布式版本控制系统Git-----5.Git 的push命令总结
    分布式版本控制系统Git-----4.Git 常用命令整理
    分布式版本控制系统Git-----3.图形化Tortoisegit创建本地库并且提交到远程服务器上
    分布式版本控制系统Git-----2.上传至远程仓库之基础版
    分布式版本控制系统Git-----1.Git 初识
    JavaWeb笔记03-Servlet
    JavaWeb笔记01-XML
    Emmet的html语法
    npm常用命令
    Node.js中事件的循环
  • 原文地址:https://www.cnblogs.com/qchy/p/3000708.html
Copyright © 2011-2022 走看看