分类: *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. SQL Server Instance无法启动了, 因为TempDB所在的分区没有了, 怎么办?

    我的SQL 2014的虚拟机在迁移的时候, 存放TempDB的LUN被删掉了. 在虚拟机的操作系统启动了之后, SQL Server Instance却启动不起来了. 检查Event Log, 报错. ...

  2. Maximal Rectangle leetcode java

    题目: Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing all ones ...

  3. Copy List with Random Pointer leetcode java

    题目: A linked list is given such that each node contains an additional random pointer which could poi ...

  4. Chain of Responsibility 责任链模式 MD

    责任链模式 简介 责任链模式是一种对象的行为模式.在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链,请求在这个链上[传递],直到链上的某一个对象决定处理此请求.发出这个请求的客户 ...

  5. 用js做一个简单的留言板效果

    html部分: 1: <!DOCTYPE> 2: <html lang="zh-en"> 3: <head> 4: <title>j ...

  6. GetProcAddress 使用注意事项

    使用 GetProcAddress Function 时,有以下几点需要特别留意: 1. 第二个参数类型是 LPCSTR,不是 : 2. 用 __declspec(dllexport),按 C 名称修 ...

  7. [CSS] Pseduo

    #self aside li{ list-style-type: none;padding:5px;border-bottom: 1px solid #ccc;} #self aside li:las ...

  8. Python访问MongoDB数据库

    #encoding: utf-8 __author__ = 'Administrator' #import pymongo from pymongo import MongoClient,GEO2D ...

  9. 劣质代码评析——《写给大家看的C语言书(第2版)》附录B之21点程序(八)

    [重构](续) 牌的表示: 一副牌有52张,可用一整数数组描述.但是由于在游戏过程中牌数在不断减少,所以用一表示剩余张数的整数和一整数数组共同描述.C99支持一种变量长度数组,但用在这里并没有什么特别 ...

  10. js的正则匹配 和 blur

    <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js&qu ...