zoukankan      html  css  js  c++  java
  • android 检查网络是否可用,如果不可用弹出设置,让用户改变


    /** * 校验网络,如果没有网络,返回true * * @return boolean */ @Override public boolean hasInternetConnected() { ConnectivityManager manager = (ConnectivityManager)context .getSystemService(Context.CONNECTIVITY_SERVICE); if (manager != null){ NetworkInfo info = manager.getActiveNetworkInfo(); if(info !=null && info.isConnectedOrConnecting() ){ return true; } } openWirelessSet(); return false; }
    /**
         * 弹出框
         */
        @Override
        public void openWirelessSet() {
            final AlertDialog.Builder builder = new AlertDialog.Builder(context);
            builder.setTitle("提示")
                    .setMessage("请检查您的网络连接")
                    .setPositiveButton("设置", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            Intent intent = new Intent(
                                    Settings.ACTION_WIRELESS_SETTINGS);
                            context.startActivity(intent);
                        }
                    })
                    .setNegativeButton("关闭", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
                        }
                    });
            builder.create().show();
        }

    上面这种方式是我自己用的可以的

    /**
         * 检验网络连接是否可用
         *
         * @return boolean
         */
        @Override
        public boolean validateInternet() {
            ConnectivityManager manager = (ConnectivityManager) context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
            if(manager != null){
    
                NetworkInfo[] info =manager.getAllNetworkInfo();
                if (info != null){
                    for (NetworkInfo  networkInfo : info){
                        if (networkInfo.getState() == NetworkInfo.State.CONNECTED);
                        return true;
                    }
                }
            }
    
    
            return false;
        }

    这种也看别人用过,不过今天自己测试了一下,自己明明把网络数据给关了,但返回的还是true,不知道为什么(PS:有大神来解释一下呗)

  • 相关阅读:
    日期类的时间从为什么是从1970年1月1日(格林威治时间)
    网站缓存技术总结( ehcache、memcache、redis对比)
    干货|java缓存技术详解
    TCP和UDP的区别(转)
    form表单转换为Json字符串数据
    JSON.parse 和 JSON.stringify
    Navicat连接Oracle的几个问题及解决方案
    Python IO编程
    python阶段总结一
    使用git进行版本控制
  • 原文地址:https://www.cnblogs.com/prescheng/p/4992525.html
Copyright © 2011-2022 走看看