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(); } }
網絡工具類
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.