【发布时间】:2019-10-03 16:04:12
【问题描述】:
我正在尝试开发一种方法来检查 IP 方向是否可达,我发现了一个类似的问题,但它不起作用 Android Application Ping IP number
private void existePingServidor(){
InetAddress in;
try{
in = InetAddress.getByName("90.0.0.122");
if (in.isReachable(5000)){
pingServidor = true;
Log.v("true","He pasado por aquí");
}
else
pingServidor = false;
Log.v("false", "No he podido alcanzar la ip");
}
catch(Exception e){
e.printStackTrace();
}
}
问题似乎是 InetAddress.getByName("90.0.0.122");返回空
¿你能解释一下在android studio中ping一个IP的正确方法是什么吗?
【问题讨论】:
-
很高兴知道,
Log.v("false", "No he podido alcanzar la ip");总是会被调用,因为您在 else 语句中没有正确使用括号。 -
另外,您能否解释一下为什么要 ping 一个站点以检查它是否可用?您的问题可能会以更简单的方式解决。
-
嗨,谢谢你的回答,关于日志是真的,但我得到一个 android.os.NetworkOnMainThreadException 导致日志不显示任何内容。关于检查IP的原因是因为如果IP是90.0.0.122那么应用程序必须做其他事情。
-
在单独的线程中调用函数。 Google上有很多关于NetworkOnMainThreadException的问题。示例:stackoverflow.com/questions/6343166/…