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(); } }
网络工具类
最新推荐文章于 2021-01-08 13:39:49 发布