標籤:android android應用 網路
public class NetUtil {/** * 檢查當前的網路 */public static boolean checkNet(Context context) {// 判斷目前使用者手機是否使用WIFI通訊boolean isWIFI = isWIFIConnection(context);// 判斷目前使用者手機是否使用APN通訊boolean isAPN = isAPNConnection(context);// 否——提示使用者——介面跳轉到網路設定if (isAPN == false && isWIFI == false) {return false;}if (isAPN) {// 是存取點// IP是10.0.0.172 連接埠是80 從手機的配置資訊中讀取// 有一部分手機:010.000.000.172setAPN(context);}return true;}/** * 從手機的配置資訊中讀取 */private static void setAPN(Context context) {Uri PREFERRED_APN_URI = Uri.parse("content://telephony/carriers/preferapn");ContentResolver contentResolver = context.getContentResolver();Cursor query = contentResolver.query(PREFERRED_APN_URI, null, null, null, null);//擷取到當前正在串連的APN資訊if(query!=null&&query.moveToNext()){//設定ip和連接埠的資訊GlobalParams.IP=query.getString(query.getColumnIndex("proxy"));GlobalParams.PORT=query.getInt(query.getColumnIndex("port"));}}/** * 判斷WIFI是否串連 * * @return */private static boolean isWIFIConnection(Context context) {ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo networkInfo = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);if (networkInfo != null)return networkInfo.isConnected();return false;}/** * 判斷APN是否串連 * * @return */private static boolean isAPNConnection(Context context) {ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo networkInfo = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);if (networkInfo != null)return networkInfo.isConnected();return false;}}
android網路連接工具類