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...");
    }
}

运行界面:

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, 网络
, new
, null
, alertdialog
, android网络
, intent
, android alertdialog
, 状态
, 网络判断
, android网络通讯
, 网络状态
, 判断网络
android网络判断
android 判断网络状态、js判断网络连接状态、ios判断网络连接状态、java判断网络连接状态、c判断网络的连接状态,以便于您获取更多的相关知识。

时间: 2024-10-24 19:47:37

Android连接网络的时候对网络的状态进行判断的相关文章

Android中判断网络连接是否可用及监控网络状态_Android

获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 1)判断是否有网络连接 复制代码 代码如下: public boolean isNetworkConnected(Context context) { if (context != null) { ConnectivityManager mConn

Android判断设备网络连接状态及判断连接方式的方法_Android

本文实例讲述了Android判断设备网络连接状态及判断连接方式的方法.分享给大家供大家参考,具体如下: 在Android开发过程中,对于一个需要连接网络的Android设备,对设备的网络状态检测是很有必要的!有很多的App都需要连接网络.判断设备是否已经连接网络,并且在连接网络的状态下判断是wifi无线连接还是GPRS手机网络连接,这样就可以在不同的网络连接下去调用不同的方法,处理不同的事情.这些功能都写在了下面的代码中了!请看主要代码如下: /** * 检测网络是否连接 * @return *

Android中判断网络连接是否可用及监控网络状态

获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 1)判断是否有网络连接 复制代码 代码如下:public boolean isNetworkConnected(Context context) { if (context != null) { ConnectivityManager mConne

Android判断设备网络连接状态及判断连接方式的方法

本文实例讲述了Android判断设备网络连接状态及判断连接方式的方法.分享给大家供大家参考,具体如下: 在Android开发过程中,对于一个需要连接网络的Android设备,对设备的网络状态检测是很有必要的!有很多的App都需要连接网络.判断设备是否已经连接网络,并且在连接网络的状态下判断是wifi无线连接还是GPRS手机网络连接,这样就可以在不同的网络连接下去调用不同的方法,处理不同的事情.这些功能都写在了下面的代码中了!请看主要代码如下: /** * 检测网络是否连接 * @return *

wi-fi- android 如何判断已连接上指定的wifi网络?注意是验证!!!

问题描述 android 如何判断已连接上指定的wifi网络?注意是验证!!! mWifiAdmin.addNetWork(mWifiAdmin.CreateWifiInfo(getSSID, "", 1)使用这个方法去连接wifi返回true后表示wifi连接成功,但是还需要好像wifi连接真正稳定下来还需要一段时间,这个时候我用当前当前手机的网络状态是否为wifi和当前手机连接wifi的ssid和指定要连接wifi的ssid去比较是否连接成功,但是都判断成功后有网络请求有时候还是失

Android中Volley框架进行请求网络数据的使用_Android

问题的阐述:Android SDK中的HttpClient和HttpUrlConnection两种请求方式用来处理网络的复杂的操作,但当应用比较复杂的时候需要我们编写大量的代码处理很多东西:图像缓存,请求的调度等等: 解决:Volley就是为解决这些而生,它与2013年Google I/O大会上被提出:使得Android应用网络操作更方便更快捷:抽象了底层Http Client等实现的细节,让开发者更专注与产生RESTful Request.另外,Volley在不同的线程上异步执行所有请求而避免

Android 中常用的几种网络框架

在日常的开发中,大多数应用程序基本都需要连接网络,发送一些数据给服务端,然后在从服务端获取一些数据.通常在android中进行网络连接一般使用Scoket和HTTP,HTTP请求方式教Scoket多得多.HTTP请求一般采用原生的HttpClient和HttpUrlConnection的两种网络访问方式.下面介绍几种常用的Android网络框架,希望对你在实际开发中有所帮助.android-async-http :HTTP请求发生在UI线程之外,自动智能请求重试,优化了质量不一的移动连接,自动解

Android中Volley框架进行请求网络数据的使用

问题的阐述:Android SDK中的HttpClient和HttpUrlConnection两种请求方式用来处理网络的复杂的操作,但当应用比较复杂的时候需要我们编写大量的代码处理很多东西:图像缓存,请求的调度等等: 解决:Volley就是为解决这些而生,它与2013年Google I/O大会上被提出:使得Android应用网络操作更方便更快捷:抽象了底层Http Client等实现的细节,让开发者更专注与产生RESTful Request.另外,Volley在不同的线程上异步执行所有请求而避免

无法配置此无线连接 无法搜索到无线网络

目前,笔记本电脑很多都自带802.11b/g无线网络适配器,不必再另外安装无线网卡即可连接到无线网络.但常常遇到这样的问题,未曾使用过 无线或者曾连接过某个无线网络的笔记本电脑会连接不到一个新的无线网络.其实这并非"问题",只不过需要使用无线管理工具做适当的操作.但这就引出了新的问题,因为几乎所有自带无线网卡的电脑都有两个无线管理工具,一个是Windows XP操作系统本身的无线管理工具,一个是笔记本厂商提供的管理工具,后者亦是在电脑出厂时已安装好了.那么默认时是哪个管理工具在起作用呢