网络工具类

来源:互联网 发布:淘宝被恶意投诉售假 编辑:程序博客网 时间:2024/06/05 14:25
import android.app.Activity;import android.app.AlertDialog;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.provider.Settings;import android.util.Log;/** * Created by chao0 on 2016/3/2. *//** * 基于静态内部类实现的单例,保证线程安全的网络信息工具类 <per> 使用该工具类之前,记得在AndroidManifest.xml添加权限许可 <xmp> * <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> * </xmp> </per> * 安卓判断网络状态,只需要在相应的Activity的相关方法(onCreat/onResum)调用一行代码即可 * NetWorkUtils.getInstance(getActivity()).validateNetWork(); */public class ToolNetWork {    /** 网络连接方式 CMWAP*/    private static final String NETWORK_CMWAP="CMWAP";    /** 网络连接方式 CMNET*/    private static final String NETWORK_CMNET="CMNET";    /** 网络连接方式 WIFI*/    private static final String NETWORK_WIFI="WIFI";    private static final String TAG ="ToolNetWork" ;    private static NetworkInfo networkInfo;    private Context contxt;    private ToolNetWork() {    }    public ToolNetWork getToolNetWork(Context context){        this.contxt=context;        return this;    }    /** 判断网络是否可用     * return /     * */    public boolean isAvailable(){        ConnectivityManager manager= (ConnectivityManager) contxt.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);        if (manager==null){            return false;        }        networkInfo=manager.getActiveNetworkInfo();        if (networkInfo==null||networkInfo.isAvailable()){            return false;        }        return true;    }    /**     *判断网络连接是否可用     * return /     * */    public boolean isConnected(){        if (!isAvailable()){            return false;        }        if (networkInfo.isConnected()){            return false;        }        return true;    }    // 检查当前环境网络是否可用,不可用跳转至开启网络界面,不设置网络强制关闭当前Activity    public void validateNetWork(){    if (!isConnected()){        AlertDialog.Builder dialogBuilder=new AlertDialog.Builder(contxt);        dialogBuilder.setTitle("网络设置").setMessage("当前网络不可用,是否现在设置网络").setPositiveButton("", new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialog, int which) {                ((Activity)contxt).startActivityForResult(new Intent(Settings.ACTION_SETTINGS),which);            }        }).setNegativeButton("", new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialog, int which) {            }        }).create().show();    }    }    /**     * 获取网络连接信息</br> 无网络:</br> WIFI网络:WIFI</br> WAP网络:CMWAP</br>     * NET网络:CMNET</br>     *     * @return     */    public String getNetWorkType(){        if (isConnected()){            int type=networkInfo.getType();            if (ConnectivityManager.TYPE_MOBILE==type){                Log.i(TAG,                        "networkInfo.getExtraInfo()-->"                                + networkInfo.getExtraInfo());                if (NETWORK_CMNET.equals(networkInfo.getExtraInfo().toLowerCase())){                    return NETWORK_CMNET;                }else{                    return NETWORK_CMWAP;                }            }else if (ConnectivityManager.TYPE_WIFI==type){                return NETWORK_WIFI;            }        }        return null;    }    private static  class SingletonHolder{        private static ToolNetWork toolNetWork=new ToolNetWork();    }}
0 0
原创粉丝点击