这里有新鲜出炉的精品教程,程序狗速度看过来!
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
本文给大家分享的是使用Android实现判断是否有外网链接,有需要的小伙伴可以参考下。
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;
- }
来源: http://www.phperz.com/article/17/0914/349009.html