Android检测网络连接

Android检测网络连接

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Handler;


/**
 * Created by mzb on 13-12-16.
 */
public class NetworkUtil {

    public static final int Message_Cancel = 0;
    public static final int Message_Succeed = 1;

    /**
     * 判断是否有网络连接
     *
     * @param context 上下文Context
     * @return false没有联网,true已经联网
     */
    public static boolean canNetworkUseful(Context context) {

        ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        if (manager == null) {
            return false;
        }

        //获取当前活动的网络状态(如果同时开启3G和WIFI,则当前活动网络是WIFI),如果没有连接网络,将会返回null
        NetworkInfo networkinfo = manager.getActiveNetworkInfo();
        if (networkinfo == null || !networkinfo.isAvailable()) {
            return false;
        }

        return true;
    }

    /**
     * 如果没有联网,显示提示联网对话框;已经联网,返回false
     *
     * @param context context
     * @param handler 处理器,如果用户取消联网,则向处理器发送Message_Cancel
     * @return false没有联网,true已经联网
     */
    public static boolean showCheckNetworkDialog(final Context context, final Handler handler) {
        if (!canNetworkUseful(context)) {
            new AlertDialog.Builder(context).setMessage("当前网络不可用,请检查你的网络设置。").setPositiveButton("去设置", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    //在安卓3.0以上的版本中,wifi联网的设置被放置在了主设置页面中。在之前的版本中,wifi联网在wifi设置页面中。根据不同的版本进行不同的页面跳转
                    if (android.os.Build.VERSION.SDK_INT > 10) {
                        context.startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));
                    } else {
                        context.startActivity(new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS));
                    }
                }
            }).setNegativeButton("取消", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    handler.sendEmptyMessage(Message_Cancel);
                }
            }).show();
            return false;
        }
        return true;
    }
}
posted @ 2013-12-16 23:02  木杉是天才  阅读(411)  评论(0编辑  收藏  举报