[Android]判斷網路連接是否可用,android網路連接
/** * 判斷移動網路是否開啟 * * @param context * @return */public static boolean isNetEnabled(Context context) {TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);if (tm != null) {if (tm.getNetworkType() != TelephonyManager.NETWORK_TYPE_UNKNOWN) {Log.i("sjf", "移動網路已經開啟");return true;}}Log.i("sjf", "移動網路還未開啟");return false;}/** * 判斷WIFI網路是否開啟 * * @param context * @return */public static boolean isWifiEnabled(Context context) {WifiManager wm = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);if (wm != null && wm.isWifiEnabled()) {Log.i("sjf", "Wifi網路已經開啟");return true;}Log.i("sjf", "Wifi網路還未開啟");return false;}/** * 判斷移動網路是否串連成功 * * @param context * @return */public static boolean isNetContected(Context context) {ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo info = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);if (cm != null && info != null && info.isConnected()) {Log.i("sjf", "移動網路連接成功");return true;}Log.i("sjf", "移動網路連接失敗");return false;}/** * 判斷WIFI是否串連成功 * * @param context * @return */public static boolean isWifiContected(Context context) {ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo info = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);if (info != null && info.isConnected()) {Log.i("sjf", "Wifi網路連接成功");return true;}Log.i("sjf", "Wifi網路連接失敗");return false;}/** * 判斷移動網路和WIFI是否開啟 * * @param context * @return */public static boolean isNetWorkEnabled(Context context) {return (isNetEnabled(context) || isWifiEnabled(context));}/** * 判斷移動網路和WIFI是否串連成功 * @param context * @return */public static boolean isNetworkConnected(Context context) {return (isWifiContected(context) || isNetContected(context));}
操作Wifi需要AndroidManifest.xml在進行一些配置:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"></uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
WIFI 的主要操作許可權有四個:
CHANGE_NETWORK_STATE :允許修改網路狀態的許可權。
CHANGE_WIFI_STATE :允許修改 WIFI 狀態的許可權。
ACCESS_NETWORK_STATE :允許訪問網路狀態的許可權。
ACCESS_WIFI_STATE :允許訪問 WIFI 狀態的許可權。
android判斷網路是否串連
ConnectivityManager cm = (ConnectivityManager) ctx
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()) {
// 有可用的網路
}
android判斷網路是否串連
返回ture表示網路可用
// 檢測網路
public static boolean checkNetworkAvailable(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
NetworkInfo netWorkInfo = info[i];
if (netWorkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
return true;
} else if (netWorkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
return true;
}
}
}
}
}
return false;
}