繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM