zoukankan      html  css  js  c++  java
  • 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;
        }
    }
  • 相关阅读:
    springboot获取application.yml中的配置信息
    springboot+mybatis整合(单元测试,异常处理,日志管理,AOP)
    最近工作中的一些教训
    SAP BADI的“多次使用”(multiple use)
    SAP CRM 忠诚度相关表的关系图
    一个噩梦
    i.s.h.med Enhancement for cancelling an appointment
    一个冷门语言开发者的2016年总结和2017年目标
    装机的几个误区
    关于BAPI_PATIENT_CREATE(病患主数据创建)
  • 原文地址:https://www.cnblogs.com/mushan/p/3477596.html
Copyright © 2011-2022 走看看