中关村在线

首页 排行 新品 问答 下载 论坛 手机 笔记本 数码相机 主板 显卡 平板电脑 更多

android 怎么判断当前网络联接是否可以联接到外网

举报
讨论回答 (7)
a762361772
luowei52
mamawoaini1314
1067228509
0Secret
qq251548547
//判断是否有网络连接public boolean isNetworkConnected(Context context) { if (context != null) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo(); if (mNetworkInfo != null) { return mNetworkInfo.isAvailable(); } } return false; }//判断wifi是否可用public boolean isWifiConnected(Context context) { if (context != null) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mWiFiNetworkInfo = mConnectivityManager .getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (mWiFiNetworkInfo != null) { return mWiFiNetworkInfo.isAvailable(); } } return false; }//判断mobile网络是否可用public boolean isMobileConnected(Context context) { if (context != null) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mMobileNetworkInfo = mConnectivityManager .getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if (mMobileNetworkInfo != null) { return mMobileNetworkInfo.isAvailable(); } } return false; }//获取网络连接类型public static int getConnectedType(Context context) { if (context != null) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo(); if (mNetworkInfo != null && mNetworkInfo.isAvailable()) { return mNetworkInfo.getType(); } } return -1; }
venizhou
Android里判断是否可以上网,常用的是如下方法:

/**
* 检测网络是否连接
*
* @return
*/
private boolean isNetworkAvailable() {
// 得到网络连接信息
ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
// 去进行判断网络是否连接
if (manager.getActiveNetworkInfo() != null) {
return manager.getActiveNetworkInfo().isAvailable();
}
return false;
}

有时候我们连接上一个没有外网连接的WiFi或者有线就会出现这种极端的情况,目前Android SDK还不能识别这种情况,一般的解决办法就是ping一个外网。

/* @author suncat
* @category 判断是否有外网连接(普通方法不能判断外网的网络是否连接,比如连接上局域网)
* @return
*/
public static final boolean ping() {

String result = null;
try {
String ip = "
www.baidu.com";// ping 的地址,可以换成任何一种可靠的外网
Process p = Runtime.getRuntime().exec("ping -c 3 -w 100 " + ip);// ping网址3次
// 读取ping的内容,可以不加
InputStream input = p.getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(input));
StringBuffer stringBuffer = new StringBuffer();
String content = "";
while ((content = in.readLine()) != null) {
stringBuffer.append(content);
}
Log.d("------ping-----", "result content : " + stringBuffer.toString());
// ping的状态
int status = p.waitFor();
if (status == 0) {
result = "success";
return true;
} else {
result = "failed";
}
} catch (IOException e) {
result = "IOException";
} catch (InterruptedException e) {
result = "InterruptedException";
} finally {
Log.d("----result---", "result = " + result);
}
return false;
}
展开查看全部 7 条讨论
相关问题

Android 8.0系统什么时候正式推出?

2209 浏览 51 回答

为什么部分 iOS 用户不喜欢用 Android 系统?

1.3万 浏览 37 回答

Android劫持病毒是怎么回事?

1448 浏览 19 回答

现在iOS比Android还有优势吗?

1649 浏览 17 回答

你理想中的 Android 电脑是什么样子呢?

1.5万 浏览 16 回答

相关产品
扩展阅读

重温苹果10大高光时刻:下一次惊喜 明年可期?

评论 6

重温苹果10大高光时刻:下一次惊喜 明年可期?

iOS 18.2两个隐藏工具超实用,iPhone用户一定要打开!

评论 24

iOS 18.2两个隐藏工具超实用,iPhone用户一定要打开!

荣耀GT全面评测:2199元打造游戏手机新标杆

评论 4

荣耀GT全面评测:2199元打造游戏手机新标杆

vivo S20 Pro多场景全焦段影像专项评测:定格色彩与情绪的记忆

评论 5

vivo S20 Pro多场景全焦段影像专项评测:定格色彩与情绪的记忆

荣耀Magic7系列“大王影像”实测体验:弥补手机长焦硬件不足

评论 21

荣耀Magic7系列“大王影像”实测体验:弥补手机长焦硬件不足
热门问题

字节跳动旗下12款产品

6813 浏览 6 回答

字节跳动旗下12款产品

免费韩国漫画在线观看的地址有么?

8059 浏览 5 回答

免费韩国漫画在线观看的地址有么?

求推荐一款笔记本。工科研究生用,便于随身携带。平时做科研,处理数据,查阅文献。不玩网游和单机,至多玩棋牌游戏和影音。喜欢摄影,需要修图。附加:纠结要不要带数字键盘区。预算最多8000。尽量便宜些。

1.2万 浏览 6 回答

求推荐一款笔记本。工科研究生用,便于随身携带。平时做科研,处理数据,查阅文献。不玩网游和单机,至多玩棋牌游戏和影音。喜欢摄影,需要修图。附加:纠结要不要带数字键盘区。预算最多8000。尽量便宜些。

有一样东西,比雪还白,比黑板还黑,男的一天用三次,女的一辈子用一次,是什么?

6440 浏览 7 回答

有一样东西,比雪还白,比黑板还黑,男的一天用三次,女的一辈子用一次,是什么?

荣耀Magic7 Pro

9821 浏览 1 回答

荣耀Magic7 Pro

在哪里可以免费看韩漫的?

2876 浏览 6 回答

在哪里可以免费看韩漫的?

一公里大约多少步数 一公里有多少步

7512 浏览 8 回答

一公里大约多少步数 一公里有多少步

256gSSD是否够用?打算买个笔记本,办公为主,查阅文献等。不玩大型游戏,至多玩一些棋牌类游戏和影音娱乐。手里有2T移动硬盘,但也想在笔记本上存少量的电影。平时玩单反,处理图片比较多。

2.3万 浏览 5 回答

256gSSD是否够用?打算买个笔记本,办公为主,查阅文献等。不玩大型游戏,至多玩一些棋牌类游戏和影音娱乐。手里有2T移动硬盘,但也想在笔记本上存少量的电影。平时玩单反,处理图片比较多。

肿么找回QQ浏览器历史记录

7305 浏览 6 回答

肿么找回QQ浏览器历史记录

人无远虑是指什么生肖

9589 浏览 5 回答

人无远虑是指什么生肖
最新问答

jdk-8u45-windows-i586.exe对应的eclipse版本

7224 浏览 6 回答

jdk-8u45-windows-i586.exe对应的eclipse版本

PPT中的EXCEL变成图片了,怎么转换成EXCEL格式呢

8114 浏览 5 回答

PPT中的EXCEL变成图片了,怎么转换成EXCEL格式呢

电气设计软件,ElectroCAD,Autocad Electrical和EPLAN何种最好

5347 浏览 4 回答

电气设计软件,ElectroCAD,Autocad Electrical和EPLAN何种最好

怎么让bat文件 开机自动以管理员身份运行。且不弹出黑框

8218 浏览 4 回答

怎么让bat文件 开机自动以管理员身份运行。且不弹出黑框

400A的电流正确挑选多大的电缆

1.7万 浏览 10 回答

400A的电流正确挑选多大的电缆
举报
举报成功

经过核实后将会做出处理,感谢您为社区和谐做出贡献。

请选择删除原因
删除成功
确定推荐该回答?
推荐成功

更多频道

频道导航
辅助工具