我们想要构建一个功能,如果用户连接到WiFi网络,我们可以显示连接到同一WiFi的其他设备的详细信息。我们该怎么做呢?
现在,我们可以通过以下方式实现目标:
我们在这方面取得了成功,但问题是它需要太长时间 - 大约需要4-5分钟才能完成。我有一种感觉,有人可以指出我们更好,更快的解决方案。
有一个类似question(虽然它是关于iOS)但没有找到任何答案,因此再次发布。如果这违反了规则,请原谅。任何帮助都将受到高度赞赏。
以下是代码片段,这些代码需要很长时间才能返回结果(步骤1)
for (int i = 0; i < 255; i++) {
String host = "";
try {
String subnet = "192.168.2";
host = subnet + "." + i;
Process exec = Runtime.getRuntime().exec(String.format(CMD, host));
int i1 = exec.waitFor();
if (i1 == 0) {
InetAddress a = InetAddress.getByName(host);
Log.i("TAG", "run: " + a.getHostAddress());
} else {
throw new IOException("Unable to get ping from runtime");
}
} catch (IOException | InterruptedException e) {
try {
InetAddress a = InetAddress.getByName(host);
if (a.isReachable(200)) {
Log.i("TAG", "run: " + a.getHostAddress());
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}