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

应用场景:实现判断当前网络是否可用

当前有可用网络,如下图:

当前没有可用网络,如下图:

实现步骤:

1、获取ConnectivityManager对象

Context context = activity.getApplicationContext();

// 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)

ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

2、获取NetworkInfo对象

// 获取NetworkInfo对象

NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();

3、判断当前网络状态是否为连接状态

if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED)

{

return true;

}

4、在AndroidManifest.xml中添加访问当前网络状态权限

代码如下:

public class ClassTestDemoActivity extends Activity

{

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

if (isNetworkAvailable(ClassTestDemoActivity.this))

{

Toast.makeText(getApplicationContext(), "当前有可用网络!", Toast.LENGTH_LONG).show();

}

else

{

Toast.makeText(getApplicationContext(), "当前没有可用网络!", Toast.LENGTH_LONG).show();

}

}

/**

* 检查当前网络是否可用

*

* @param context

* @return

*/

public boolean isNetworkAvailable(Activity activity)

{

Context context = activity.getApplicationContext();

// 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)

ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

if (connectivityManager == null)

{

return false;

}

else

{

// 获取NetworkInfo对象

NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();

if (networkInfo != null && networkInfo.length > 0)

{

for (int i = 0; i < networkInfo.length; i++)

{

System.out.println(i + "===状态===" + networkInfo[i].getState());

System.out.println(i + "===类型===" + networkInfo[i].getTypeName());

// 判断当前网络状态是否为连接状态

if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED)

{

return true;

}

}

}

}

return false;

}

}

控制台打印出的结果:

Android 关于判断应用是否有网络

在Android编程中不少有许多应用需要判断是否有网络的问题,现在我就来说说关于网络的问题吧,源码如下:

.java

/**

* 检查当前网络是否可用

*

* @param context

* @return

*/

public boolean isNetworkAvailable(Activity activity)

{

Context context = activity.getApplicationContext();

// 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)

ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

if (connectivityManager == null)

{

return false;

}

else

{

// 获取NetworkInfo对象

NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();

if (networkInfo != null && networkInfo.length > 0)

{

for (int i = 0; i < networkInfo.length; i++)

{

System.out.println(i + "===状态===" + networkInfo[i].getState());

System.out.println(i + "===类型===" + networkInfo[i].getTypeName());

// 判断当前网络状态是否为连接状态

if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED)

{

return true;

}

}

}

}

return false;

}

在oncreate()方法中判断这个方法,具体代码如下:

.java

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

if(isNetworkAvailable(Maintivity.this){

Toast.makeText(this, "当前有可用网络!", Toast.LENGTH_LONG).show();

}else{

Toast.makeText(this,"当前没有网络!",Toast.LENGTH_LONG).show();}

}

另外,还需要添加权限

android 判断对象,Android网络判断知识小结相关推荐

  1. android bundle 对象,Android Bundle传递对象

    首先Android的Bundle是可以传递对象的.我们可以用Bundle b = new Bundle():b.putSerializable("key", 对象引用); 但是这样 ...

  2. android drawable 对象,Android Drawable开发简介

    Drawable 是"可绘制的东西"的抽象类,被定义在 android.graphics.drawable 包下. Drawable 类继承了很多代表不同形状的子类,例如 Bitm ...

  3. Android应会的网络基本知识

    网络安全问题 被动攻击 被动攻击通过截获报文来破解报文内容. 通过密钥和加密算法来避免这个问题. 主动攻击 计算机病毒 :具有传染性,具备可以将自己值入多个程序的能力,修改程序,将自己作为变种插入程序 ...

  4. android parcelable 对象,Android实现Parcelable对象序列化的实例

    Android实现Parcelable对象序列化的实例 bundle.putParcelable可以实现传递对象,但是这个对象的类必须实现Parcelable接口才能够使用. 下面是一个简单的在Act ...

  5. android bitmap对象,android 创建bitmap的多种方式

    –Bitmap代表这一张位图,BitmapDrawable里封装的图片就是一个Bitmap对象.如果要将Bitmap对象封装成BitmapDrawable对象只需要用构造方法即可. //讲bitmap ...

  6. android bean对象,Android GreenDao 保存 JavaBean 或者List JavaBean类型数据

    GreenDao 简介 数据库存储数据基本上每个APP都有用到,GreenDAO 是一个将对象映射到 SQLite 数据库中的轻量且快速的 ORM 解决方案,至于用法这里不再多少,网上有很资料,这里主 ...

  7. android 如何判断有没有网络

    //从项目取出来的代码,android  如何判断有没有网络,分享一下 protected static int getAPNType(Context context) { //给网络设置值 int ...

  8. android 验证码按钮点击,判断网络和匹配手机号并自动更新时间;

    开发过程中会遇见很多app注册时需要通过手机发送验证码验证,并获取验证码进行验证,在发送验证码时会有个手机号判断和网络链接及按钮上的数字自动递减:为后续用起来方便,特地做个记录: 在布局之前先要做的是 ...

  9. Android开发(七)——判断网络状态

    项目中难免会出现使用网络的情况,使用网络前得进行网络判断,看网上的网友一般有多种实现版本. 第一种: // 是否有网络连接public static boolean isNetworkConnecte ...

最新文章

  1. Java项目:网上选课系统(java+SSM+jsp+mysql+maven)
  2. 二叉树路径和最大python_python3实现在二叉树中找出和为某一值的所有路径(推荐)...
  3. XXX管理平台系统——概要
  4. Linux下test命令使用
  5. linux组的管理命令,linux 用户和组管理命令(示例代码)
  6. login aspx实现登陆功能 400电话
  7. C/C++入门的精髓!太全了吧,收藏夹的必备
  8. 深度理解cnn 网络
  9. 如何在maven repository手动下载jar包
  10. 10A 的GROUP和CUI使用
  11. JXL读取,写入Excel
  12. execle java,Java使用POI操作Excel
  13. Mozilla Apache/Nginx/Lighttpd/HAProxy SSL 配置生成器
  14. 手把手学ROR三——Rails的代码方式
  15. java applet 按钮_Java Applet语法简介
  16. 韩立刚计算机网络笔记-第01章 计算机网络详解
  17. 设计师:设计师的知识储备之异形曲面设计 巴洛克、洛可可 设计理论(三角形构图、平衡式构图、三分法构图 、九宫格构图)之详细攻略
  18. python从入门到精通-张子夜-专题视频课程
  19. python 爬取NBA中国官网球员数据
  20. [刷题]leetcode #309 - Best Time to Buy and Sell Stock with Cooldown

热门文章

  1. Java上传文件到MongoDB GirdFS
  2. oracle负数怎么比较大小,输出负数【oracle学习吧】_百度贴吧
  3. node作为java中间间_node作为中间服务层如何发送请求(发送请求的实现方法详解)...
  4. 法线贴图Nomal mapping 原理
  5. 智能集群理论优化控制_数学学科学术报告九:机器人集群的智能协同控制方法_中国计量大学...
  6. c语言整型数组操作,c语言的数组操作|时刻需
  7. 【转】禁用Chrome和Firefox中自动播放的动画GIF
  8. 【转】RabbitMQ六种队列模式-4.路由模式
  9. ASP.NET Core管道深度剖析(1):采用管道处理HTTP请求
  10. php 版权信息自动变化,php自动更新版权信息显示的方法