您的位置:首页 > 理论基础 > 计算机网络

Android wiki:04.ConnectivityManager检查是否有可用网络

2015-07-01 19:21 597 查看
2015/4/12

    ConnectivityManager cm = (ConnectivityManager) getSystemService(Activity.CONNECTIVITY_SERVICE);

    boolean wifi = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();

    boolean sim = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting();

    if (wifi || sim) {// 有开启wifi或者互联网

    }else{

    }

    

//-----------------------------------------------------------------------

public class NetUtil {

    /**

     * 检查用户网络连接情况

     * @param context

     * @return

     */

    public static boolean checkNetConnetion(Context context) {

        boolean wifi = isWIFIConnetion(context);

        boolean mobile = isMOBILEConnetion(context);

        if (mobile) {// 如果是连接移动APN,就获取代理ip的代理端口

            readAPN(context);

        }

        if (mobile || wifi) {

            return true;

        } else {

            return false;

        }

    }

    /**

     * 读取APN的代理ip和端口

     *

     * @param context

     */

    private static void readAPN(Context context) {

        Uri PREFERRED_APN_URI = Uri.parse("content://telephony/carriers/preferapn");// 4.0模拟器屏蔽掉该权限

        // 操作联系人类似

        ContentResolver resolver = context.getContentResolver();

        // 判断是哪个APN被选中了

        Cursor cursor = resolver.query(PREFERRED_APN_URI, null, null, null, null);

        if (cursor != null && cursor.moveToFirst()) {

            String PROXY = cursor.getString(cursor.getColumnIndex("proxy"));

            int PORT = cursor.getInt(cursor.getColumnIndex("port"));

        }

    }

    /**

     * 检查是否连接移动网络

     *

     * @param context

     * @return

     */

    public static boolean isMOBILEConnetion(Context context) {

        ConnectivityManager cManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkInfo info = cManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

        if (info != null) {

            return info.isConnected();

        }

        return false;

    }

    /**

     * 检查wifi是否连接

     *

     * @param context

     * @return

     */

    public static boolean isWIFIConnetion(Context context) {

        ConnectivityManager cManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkInfo info = cManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

        if (info != null) {

            return info.isConnected();

        }

        return false;

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: