zoukankan      html  css  js  c++  java
  • android检测网络连接状态示例讲解

    网络的时候,并不是每次都能连接到网络,因此在程序启动中需要对网络的状态进行判断,如果没有网络则提醒用户进行设置
     

    Android连接首先,要判断网络状态,需要有相应的权限,下面为权限代码(AndroidManifest.xml):

    复制代码 代码如下:

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.INTERNET"/>

    然后,检测网络状态是否可用

    复制代码 代码如下:

    /**
     * 对网络连接状态进行判断
     * @return  true, 可用; false, 不可用
     */ 
    private boolean isOpenNetwork() { 
        ConnectivityManager connManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 
        if(connManager.getActiveNetworkInfo() != null) { 
            return connManager.getActiveNetworkInfo().isAvailable(); 
        } 

        return false; 

    最后,不可用则打开网络设置

    复制代码 代码如下:


    /**
     * 访问百度主页,网络不可用则需设置
     */ 
    private void initMoreGames() { 
        String URL_MOREGAMES = "http://www.baidu.com"; 
        mWebView = (WebView) findViewById(R.id.view_gamesort); 

        if (mWebView != null) { 
            mWebView.requestFocus(); 
            WebSettings webSettings = mWebView.getSettings(); 
            if (webSettings != null) { 
                webSettings.setJavaScriptEnabled(true); 
                webSettings.setCacheMode(MODE_PRIVATE); 
                webSettings.setDefaultTextEncodingName("utf-8"); 
            } 

            // 判断网络是否可用 
            if(isOpenNetwork() == true) { 
                mWebView.loadUrl(URL_MOREGAMES); 
            } else { 
                AlertDialog.Builder builder = new AlertDialog.Builder(MoreGamesActivity.this); 
                builder.setTitle("没有可用的网络").setMessage("是否对网络进行设置?"); 

                builder.setPositiveButton("是", new DialogInterface.OnClickListener() { 
                    @Override 
                    public void onClick(DialogInterface dialog, int which) { 
                        Intent intent = null; 

                        try { 
                            String sdkVersion = android.os.Build.VERSION.SDK; 
                            if(Integer.valueOf(sdkVersion) > 10) { 
                                intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS); 
                            }else { 
                                intent = new Intent(); 
                                ComponentName comp = new ComponentName("com.android.settings", "com.android.settings.WirelessSettings"); 
                                intent.setComponent(comp); 
                                intent.setAction("android.intent.action.VIEW"); 
                            } 
                            MoreGamesActivity.this.startActivity(intent); 
                        } catch (Exception e) { 
                            Log.w(TAG, "open network settings failed, please check..."); 
                            e.printStackTrace(); 
                        } 
                    } 
                }).setNegativeButton("否", new DialogInterface.OnClickListener() { 
                    @Override 
                    public void onClick(DialogInterface dialog, int which) { 
                        dialog.cancel();         
                        finish(); 
                    } 
                }).show(); 
            } 
        } else { 
            Log.w(TAG, "mWebView is null, please check..."); 
        } 
    }

  • 相关阅读:
    前端知识体系
    DOMContentLoaded与load的区别
    最佳网页宽度及其实现
    一些颜色工具网站
    Firebug入门指南
    CSS中背景图片定位方法
    字符编码笔记:ASCII,Unicode 和 UTF-8
    学JS的书籍
    深入理解定位父级offsetParent及偏移大小
    event——事件对象详解
  • 原文地址:https://www.cnblogs.com/xgjblog/p/3811468.html
Copyright © 2011-2022 走看看