Android快速查找网络上的所有本地设备

时间:2014-08-08 19:28:03

标签: android

我正在制作一款需要能够查看本地网络设备(名称或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;
}

必须有更快的方法来搜索网络设备吗?

1 个答案:

答案 0 :(得分:2)

请检查Using Network Service Discovery并在AsyncTask中执行任务。当新节点加入本地网络时,继续更新UI。