设置一个工具类:
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; } });
转载请标明出处:android中验证是否可以上网
文章来源: android中验证是否可以上网