[英]Android Quickly Find All Local Devices on Network
我正在制作一个需要能够查看本地网络设备(名称或ip)的Android应用。 目前,我可以扫描网络并找到设备的本地IP。 但是,它花费了很长时间,用户在搜索网络时看到黑屏加载了几分钟。
这是我当前正在使用的代码:
private ArrayList<String> scanSubNet(String subnet) {
ArrayList<String> hosts = new ArrayList<String>();
InetAddress inetAddress = null;
for (int i = 1; i < 100; i++) {
try {
inetAddress = InetAddress.getByName(subnet + String.valueOf(i));
if (inetAddress.isReachable(1000)) {
hosts.add(inetAddress.getHostName());
Log.d("ERRORID", inetAddress.getHostName());
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return hosts;
}
必须有一种更快的方法来搜索设备的网络对吗?
请检查“ 使用网络服务发现”并在AsyncTask中执行任务。 当新节点加入您的本地网络时,请继续更新UI。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.