android中验证是否可以上网

匿名 (未验证) 提交于 2019-12-03 00:32:02

设置一个工具类:

import android.os.Handler; import android.os.Message;  import java.io.BufferedReader; import java.io.InputStreamReader;  /**  * Created by Administrator on 2018/3/29 0029.  */ public class NetWorkUtils{      /**      * 检查互联网地址是否可以访问      *      * @param address  要检查的域名或IP地址      * @param callback 检查结果回调(是否可以ping通地址){@see java.lang.Comparable<T>}      */     public static void isNetWorkAvailable(final String address, final Comparable<Boolean> callback) {         final Handler handler = new Handler() {              @Override             public void handleMessage(Message msg) {                 super.handleMessage(msg);                 if (callback != null) {                     callback.compareTo(msg.arg1 == 0);                 }             }          };         new Thread(new Runnable() {              @Override             public void run() {                 Runtime runtime = Runtime.getRuntime();                 Message msg = new Message();                 try {                     Process pingProcess = runtime.exec("/system/bin/ping -c 1 " + address);                     InputStreamReader isr = new InputStreamReader(pingProcess.getInputStream());                     BufferedReader buf = new BufferedReader(isr);                     if (buf.readLine() == null) {                         msg.arg1 = -1;                     } else {                         msg.arg1 = 0;                     }                     buf.close();                     isr.close();                 } catch (Exception e) {                     msg.arg1 = -1;                     e.printStackTrace();                 } finally {                     runtime.gc();                     handler.sendMessage(msg);                 }             }          }).start();     }  }

接着在需要验证上网发地方进行使用验证:

//进行有无网络的配置 NetWorkUtils.isNetWorkAvailable("www.baidu.com", new Comparable<Boolean>() {      @Override     public int compareTo(Boolean available) {         if (available) {             request();         } else {            Toast.makeText(Login_bypw.this,"无网络连接",Toast.LENGTH_SHORT).show();         }         return 0;     }  });


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!