[Android]判斷網路連接是否可用,android網路連接

來源:互聯網
上載者:User

[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;

}
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.