分类: *07 Android 2011-05-24 13:46 7814人阅读 评论(4) 收藏 举报

在Android平台上开发基于网络的应用,必然需要去判断当前的网络连接情况。下面的代码,作为例子,详细说明了对于当前网络情况的判断。

先看一个自己定义的应用类。

  1. public class NetworkDetector {  
  2.    
  3.     public static boolean detect(Activity act) {  
  4.         
  5.        ConnectivityManager manager = (ConnectivityManager) act  
  6.               .getApplicationContext().getSystemService(  
  7.                      Context.CONNECTIVITY_SERVICE);  
  8.         
  9.        if (manager == null) {  
  10.            return false;  
  11.        }  
  12.         
  13.        NetworkInfo networkinfo = manager.getActiveNetworkInfo();  
  14.         
  15.        if (networkinfo == null || !networkinfo.isAvailable()) {  
  16.            return false;  
  17.        }  
  18.    
  19.        return true;  
  20.     }  
  21. }  

 

这个类只有一个静态方法,用来检测当前系统的网络是否可用。如果可用,返回true。

还要进一步说明的是,NetworkInfo类中有一个方法getType(),这个方法可以用来判断当前可用的网络是wifi,还是mobile等等。

再来看使用的例子。

  1. boolean networkState = NetworkDetector.detect(XXXActivity.this);
  2. if (!networkState) {
  3. DialogUtil.openMsgDialog(XXXActivity.this,
  4. android.R.drawable.ic_dialog_info,
  5. “网络不可用,是否现在设置网络?”, android.R.string.ok,
  6. android.R.string.cancel,
  7. new DialogInterface.OnClickListener() {
  8. @Override
  9. public void onClick(DialogInterface dialog, int which) {
  10. startActivityForResult(new Intent(
  11. ACTION_WIRELESS_SETTINGS), 0);
  12. }
  13. }, new DialogInterface.OnClickListener() {
  14. @Override
  15. public void onClick(DialogInterface dialog, int which) {
  16. dialog.cancel();
  17. }
  18. }).show();
  19. }

其中XXXActivity是我自己的Activity类,DialogUtil是我自己定义的Dialog应用类。这里的代码片段,是在判断没有网络的情况下,弹出dialog,提示用户是否进入系统的网络设置界面。

因为以上代码用到了权限,需要在AndroidManifest文件中加入如下权限代码:

<uses-permission

android:name="android.permission.ACCESS_NETWORK_STATE" />

---------------------------------------------------------------------------

GL(arui319)

http://blog.csdn.net/arui319

<本文可以转载,但是请保留以上作者信息。谢谢。>

Android判断当前网络是否可用--示例代码的更多相关文章

  1. android——判断当前网络是否可用

    http://www.cnblogs.com/codeworker/archive/2012/04/23/2467180.html //判断当前是否有网络连接 private boolean isCo ...

  2. Android检测网络状态,判断当前网络是否可用

    用户手机当前网络可用:WIFI.2G/3G网络,用户打开与不打开网络,和是否可以用是两码事.可以使用指的是:用户打开网络了并且可以连上互联网进行上网. 检测当前网络是否可用,代码如下: /** * 检 ...

  3. Android中判断当前网络是否可用

    转载原文地址:http://www.cnblogs.com/renqingping/archive/2012/10/18/Net.html 当前有可用网络,如下图: 当前没有可用网络,如下图: 实现步 ...

  4. c#判断网络连接状态示例代码

    使用c#判断网络连接状态的代码. 代码: public partial class Form1 : Form { [DllImport() == true) { label1.Text = " ...

  5. Android 检查手机网络是否可用

    添加网络状态权限 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 代 ...

  6. Android程序检测网络是否可用

    在做Android应用程序中,连接网络的时候,常常要用到检测网络状态是否可用,在这里分享一个比较好用的方法. 本人参考:http://blog.csdn.net/sunboy_2050/article ...

  7. android检测当前网络是否可用

    在android程序中运行第一步就是检测当前有无可用网络  如果没有网络可用就退出程序  if (isConnect(this)==false)           {                ...

  8. Android 判断当前网络连接类型

    实际应用开发时,如果存在需要用户获取大量数据的情况,最好是先判断下网络类型,提示用户当前的网络类型,是否需要连接Wifi,etc.(手机流量太贵啦,当然土豪是无视这玩意的, (/ □ \)). 定义网 ...

  9. Android 用ping的方法判断当前网络是否可用

    判断网络的情况中,有个比较麻烦的情况就是连上了某个网络,但是那个网络无法上网 ,,, = = 想到了用ping指令来判断,经测试,可行~ ~ ~ private static final boolea ...

随机推荐

  1. POJ 1651 Multiplication Puzzle (区间DP)

    Description The multiplication puzzle is played with a row of cards, each containing a single positi ...

  2. Cognos访问权限之让拒绝更友善

    关于cognos的访问权限之前我也做了不少总结,但是由于时间关系加上用户也只要实现功能就好,我们做的效果就是像很多人一样,就那样就好了.但是有很多事情,只要你肯动脑筋,你会发现,你还可以做的更好,下面 ...

  3. Cognos让指定用户不具有删除内容的权限

    为了方便用户使用Cognos,现在很多对权限要求不够严格的用户就想到了可以让用户实现匿名登陆,即不登陆系统即可实现访问报表,当然这也仅仅是按照客户的需求,我个人认为一个安全性的数据平台还是需要对登陆. ...

  4. 【Python】在控制台输出不同颜色的文字

    今天调程序出了一个极为奇怪的问题,由于控制台输出挺多,就想把问题着重表示一下,具体即是在控制台输出红色文字. 于是在网上搜寻到了这篇:https://www.cnblogs.com/gongxr/p/ ...

  5. Oracle综合数据库管理命令集

    sqlplus SANKYU/SANKYU@ORADB_192.168.25.235 cmd: exp .......(最后不要加;号)--sankyuexp SANKYU/SANKYU@SUNNY ...

  6. UE如何使用正则表达式

    1 基本概念 元字符: 元字符 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符() \d 匹配数字 \b 匹配单词的开始或结束 \W 匹配任意不是字母 ...

  7. 如何不使用pthread_cancel而杀死线程

    http://www.cnblogs.com/no7dw/archive/2012/09/27/2705847.html During the time I use standalone cross ...

  8. 微信小程序 - 反编译线上源码

    github地址:https://github.com/qwerty472123/wxappUnpacker 不过我好像从来未成功过哈,TX地图+.TX公交都失败了 点击下载以上两个文件 哦,对了,你 ...

  9. HTML二(基本标签)

    一.标题 HTML 标题(Heading)是通过 <h1> - <h6> 等标签进行定义的. <!--标题--> <h1>标题 1</h1> ...

  10. 在 Java SE 6 中监视和诊断性能问题

    Java™ Platform, Standard Edition 6 (Java SE) 专注于提升性能,提供的增强工具可以管理和监视应用程序以及诊断常见的问题.本文将介绍 Java SE 平台中监视 ...