Hi,欢迎来到华清远见移动互联网学院官网!国内王牌JAVAEE培训、Android培训、HTML5培训、UI培训、JAVA培训、VR培训机构!

  • 400-611-6270
  • 新浪微博
  • 微信
您当前的位置:移动互联网学院 > Android开发 > Android判断网络连接状态的三种方法

Android判断网络连接状态的三种方法

时间:2017-04-25 10:40 来源:Android开发学习网

在开发android应用时,需要用到网络时,先要对网络连接状态进行检查,以给用户必要的提醒。今天就来和大家分享下Android判断网络连接状态的三种方法,希望对大家有所帮助。

Android判断网络连接状态的三种方法

Android判断网络连接状态的三种方法

App判断用户是否联网是很普遍的需求,Android判断网络连接状态实现思路大概有下面几种:

1、利用Android自带的ConnectivityManager类

2、有时候连上了wifi,但这个wifi是上不了网的,我们可以通过ping www.baidu.com来判断是否可以上网

3、也可以利用get请求访问www.baidu.com,如果get请求成功,说明可以上网

1、利用Android自带的ConnectivityManager类,判断网络连接状态

// check all network connect, WIFI or mobile

public static boolean isNetworkAvailable(final Context context) {

boolean hasWifoCon = false;

boolean hasMobileCon = false;

ConnectivityManager cm = (ConnectivityManager) context.getSystemService(context.CONNECTIVITY_SERVICE);

NetworkInfo[] netInfos = cm.getAllNetworkInfo();

for (NetworkInfo net : netInfos) {

String type = net.getTypeName();

if (type.equalsIgnoreCase("WIFI")) {

LevelLogUtils.getInstance().i(tag, "get Wifi connection");

if (net.isConnected()) {

hasWifoCon = true;

}}

if (type.equalsIgnoreCase("MOBILE")) {

LevelLogUtils.getInstance().i(tag, "get Mobile connection");

if (net.isConnected()) {

hasMobileCon = true;

}}}

return hasWifoCon || hasMobileCon;}

2、利用ping判断网络连接状态

Note:有时候连上了网络, 但却上不去外网

// network available cannot ensure Internet is available

public static boolean isNetWorkAvailable(final Context context) {

Runtime runtime = Runtime.getRuntime();

try {

Process pingProcess = runtime.exec("/system/bin/ping -c 1 www.baidu.com");

int exitCode = pingProcess.waitFor();

return (exitCode == 0);

} catch (Exception e) {

e.printStackTrace();}

return false;}

考虑到网络, 我们 ping 了www.baidu.com,国外的话可以 ping 8.8.8.8

3、通过模拟get请求,判断网络连接状态

也可以访问网址看get请求能不能成功

URL url = new URL("http://www.google.com");

HttpURLConnection urlc = (HttpURLConnection) url.openConnection();

urlc.setConnectTimeout(3000);

urlc.connect();

if (urlc.getResponseCode() == 200) {

return new Boolean(true);}

以上就是Android开发中用来判断网络连接状态的三种方法,更多Android开发技术文章请持续关注我们。

  • 北京

    010-82600385/6

    北京市海淀区西三旗悦秀路北京明园大学校内

  • 上海

    021-54485127

    上海市徐汇区漕溪路250号银海大楼11层

  • 深圳

    0755-25590506

    深圳市龙华新区人民北路美丽AAA大厦15层

  • 成都

    028-85405115

    成都武侯区科华北路99号科华大厦2层

  • 南京

    025-86551900

    南京市白下区汉中路185号鸿运大厦11层

  • 武汉

    027-87804688

    武汉工程大学卓刀泉校区科技孵化器大楼11层

  • 西安

    029-88756251

    西安市高新区高新1路12号天公大厦3层

  • 广州

    020-38342087

    广州市天河软件园柯木塱园5栋三层

  • 沈阳

    024-24349000

    沈阳市沈河区北顺城路137号锦峰大厦7层

  • 济南

    0531-88898293

    济南市高新区舜华路三庆世纪财富中心B3座6层

  • 重庆

    023-68064704

    重庆市九龙坡区渝州路87号双薪时代九楼

  • 长沙

    15010390966

    长沙市开福区芙蓉中路海东青大厦B座11楼

Copyright © 2004-2017 华清远见教育集团 版权所有,沪ICP备10038863号-3,京公海网安备110108001117号