1、首先当然得在 manifest 中加入检查网络状态的权限;
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"/>

2、详细推断步骤
(1)首先要先获得Android 对连接管理的一个类对象。
     ConnectivityManager manager = (ConnectivityManager)getSystemService(
Context.CONNECTIVITY_SERVICE);
(2)获得网络链接状态
if (manager.getActiveNetworkInfo() != null) {
   networkFlag = manager.getActiveNetworkInfo().isAvailable();
  }

(3)假设没有连接,弹出对话框提示用户连接,并在“设置”button里让用户跳转到设置网络界面。
if (! networkFlag) {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
             builder.setIcon(android.R.drawable.ic_dialog_alert);
             builder.setTitle("网络状态");
             builder.setMessage("当前网络不可用。是否设置网络?");
             builder.setPositiveButton("设置", new DialogInterface.OnClickListener() {
                 
                 @Override
                 public void onClick(DialogInterface dialog, int which) {
                     // TODO Auto-generated method stub
                  Intent wifiSettingsIntent = new Intent("android.settings.WIFI_SETTINGS");
                     startActivity(wifiSettingsIntent);
                 }
             });
             builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
                 
                 @Override
                 public void onClick(DialogInterface dialog, int which) {
                     dialog.cancel();
                 }
             });
             builder.create();
             builder.show();
  }

(4)最后一步,也是比較关键一步,就是在manifest 里声明该Activity 。 假设没做,则会出现“xxx 已经停止执行”,原因显而易见。
问题是,我们曾经都是自己建立的Activity ,知道怎样声明。这里是系统自己的setting , 我们怎样声明呢?

        <PreferenceScreen
            android:title="设置网络"
            android:summary=" ">
            <intent
                android:action="android.intent.action.MAIN"
                android:targetPackage="com.android.settings"
                android:targetClass="com.android.settings.WirelessSettings" />
        </PreferenceScreen>  

在application 里面写上以上代码就可以。

(困惑了好久,最终在一个前辈博客里找到了答案,在此感谢,http://blog.csdn.net/shenyuemei/article/details/8005241)


因为代码简单,所以就不上传DEMO 代码了。

Android笔记之网络状态推断的更多相关文章

  1. android开发获取网络状态,wifi,wap,2g,3g.工具类(一)

    android开发获取网络状态整理: package com.gzcivil.utils; import android.content.Context; import android.net.Con ...

  2. Android获取当前网络状态

    Android获取当前网络状态 效果图 有网络 没有网络 源码 下载地址(Android Studio工程):http://download.csdn.net/detail/q4878802/9052 ...

  3. 5、android ConnectivityManager获取网络状态

    ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ...

  4. android 中获取网络状态、判断3G、2G、wifi网络、判断wifi是否打开、获取本机地址、获取本机串号IMEI整理

    代码如下:package com.android.xym; import java.io.IOException; import java.net.HttpURLConnection; import ...

  5. Android开发——监听Android手机的网络状态

    0. 前言 在Android开发中监听手机的网络状态是一个常见的功能,比如在没网的状态下进行提醒并引导用户打开网络设置,或者在非wifi状态下开启无图模式等等.因此本篇将网上的资料进行了整理总结,方便 ...

  6. android判断当前网络状态及跳转到设置界面

    今天,想做这个跳转到网络设置界面, 刚开始用 intent = new Intent(Settings.ACTION_WIRELESS_SETTINGS); 不料老是出现settings.Wirele ...

  7. Android笔记之网络-基本了解

    1.3个相关API接口 Android网络编程相关的API接口与相关用途例如以下图 2. 2种网络架构模式 B/S----浏览器/server端模式,通过应用层的HTTP协议通信,不须要特定clien ...

  8. Android笔记之 网络http通信

    0.在认识HTTP前先认识URL 在我们认识HTTP之前,有必要先弄清楚URL的组成,比如: http://www.******.com/china/index.htm 它的含义例如以下: 1. ht ...

  9. Android 中判断网络状态

    首先在AndroidManifest.xml添加权限 <uses-permission android:name="android.permission.ACCESS_NETWORK_ ...

随机推荐

  1. python 9:list.reverse()(倒置原列表,可恢复改变)

    bicycles = ['trek', 'cannondale', 'redline', 'specialized'] print(bicycles) bicycles.reverse() #倒置原列 ...

  2. Python-控制流

    if #!/usr/bin/python number=23 guess=int(input('Enter an interger:')) #input返回的结果是string类型,需要用int()转 ...

  3. window.dialogArguments

    弹出子窗口window.showModalDialog( url, window ); 然后在弹出的子窗口中: window.dialogArguments 即为父窗口window对象的引用.想搞什么 ...

  4. spring jdbc、事务(三)

    spring整合jdbc spring中提供了一个可以操作数据库的对象(JDBCTemplate),对象封装了jdbc技术. 1.使用spring整合jdbc需要jdbc驱动.c3p0连接池.spri ...

  5. nginx编译安装新模块

    nginx的模块是需要重新编译nginx,而不是像apache一样配置文件引用.so 这里以安装第三方ngx_http_google_filter_module模块为例 下载第三方扩展模块ngx_ht ...

  6. Android Fragment间的广播消息接收

    这种方式不用在配置文件加东西,我比较喜欢. 广播注册,可以写在Activity(onCreate),也可以写在Fragment(onActivityCreated)里. LocalBroadcastM ...

  7. DB2数据常用指令

    ************************************************************** 这个只是个人平时总结,如果有更好的欢迎告诉我,一起学习一起成长 ***** ...

  8. Python 之 %s字符串、%d整型、%f浮点型

    %s string="hello" #%s打印时结果是hello print "string=%s" % string # output: string=hel ...

  9. 题解 P3258 【[JLOI2014]松鼠的新家】(From luoguBlog)

    唯一能得分的题也被自己搞炸了,好的. 考场上读完题基本认定和lca脱不了干系,想了一会确认是树剖. 那么问题来了,考前一节课刚发现自己之前打的树剖是错的. 而且就算是错的我也没信心考场调出来. 于是打 ...

  10. 模拟登录新浪微博(Python)

    PC 登录新浪微博时, 在客户端用js预先对用户名.密码都进行了加密, 而且在POST之前会GET 一组参数,这也将作为POST_DATA 的一部分. 这样, 就不能用通常的那种简单方法来模拟POST ...