Android - Network Utils - Kiểm tra kết nối internet trên Android Studio
1. Thêm permission trong manifest file
2. Kiểm tra loại kết nối trên điện thoại
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
public static final int NETWORK_TYPE_NO_CONNECTION = -1;
public static final int NETWORK_TYPE_UNKNOWN = 0;
public static final int NETWORK_TYPE_2G = 1;
public static final int NETWORK_TYPE_3G = 2;
public static final int NETWORK_TYPE_4G = 3;
public static final int NETWORK_TYPE_WIFI = 4;
Hàm sau sẽ thực hiện kiểm tra loại kết nối internet trên điện thoại, trả về TYPE tương ứng:
public static int getNetworkType(Context context) { ConnectivityManager cm = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cm.getActiveNetworkInfo(); if (info == null || !info.isConnected()) return NETWORK_TYPE_NO_CONNECTION; if (info.getType() == ConnectivityManager.TYPE_WIFI) return NETWORK_TYPE_WIFI; if (info.getType() == ConnectivityManager.TYPE_MOBILE) { int networkType = info.getSubtype(); switch (networkType) { case TelephonyManager.NETWORK_TYPE_GPRS: case TelephonyManager.NETWORK_TYPE_EDGE: case TelephonyManager.NETWORK_TYPE_CDMA: case TelephonyManager.NETWORK_TYPE_1xRTT: case TelephonyManager.NETWORK_TYPE_IDEN: return NETWORK_TYPE_2G; case TelephonyManager.NETWORK_TYPE_UMTS: case TelephonyManager.NETWORK_TYPE_EVDO_0: case TelephonyManager.NETWORK_TYPE_EVDO_A: case TelephonyManager.NETWORK_TYPE_HSDPA: case TelephonyManager.NETWORK_TYPE_HSUPA: case TelephonyManager.NETWORK_TYPE_HSPA: case TelephonyManager.NETWORK_TYPE_EVDO_B: case TelephonyManager.NETWORK_TYPE_EHRPD: case TelephonyManager.NETWORK_TYPE_HSPAP: return NETWORK_TYPE_3G; case TelephonyManager.NETWORK_TYPE_LTE: return NETWORK_TYPE_4G; default: return NETWORK_TYPE_UNKNOWN; } } return NETWORK_TYPE_UNKNOWN;}
3. Ví dụ kiểm tra kết đang sử dụng có phải là 3G hay không:
public static boolean isUse3GInternet(Context context) { if (NETWORK_TYPE_3G == getNetworkType(context))
return true;
return false;}
4. Kiểm tra điện thoại có đang bật kết nối internet
public static boolean isConnectedInternet(Context context) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
return netInfo != null && netInfo.isConnectedOrConnecting();
}
Nhận xét
Đăng nhận xét