当Wifi设备与热点设备断开连接时,不会从热点列表中清除它们

时间:2022-12-25 17:19:36

I am using the following code to scan the wifi devices connected to my Hotspot enabled device. It is detecting almost all the devices, but the problem is the list is not getting refreshed when the wifi devices are disconnected from the hotspot (i.e the list shows the wifi devices even if they are disconnected,the list is not supposed to show the devices which are disconnected). It shows the wifi device in the list if it is connected once to my hotspot device & the device list is not getting refreshed till the time I dont turn off the hotspot Following is my code snippet...

我使用以下代码扫描连接到我的热点设备的wifi设备。它正在检测几乎所有设备,但问题是当wifi设备与热点断开连接时列表没有刷新(即列表显示wifi设备,即使它们已断开连接,列表也不应显示设备这是断开的)。它显示列表中的wifi设备,如果它连接到我的热点设备一次&设备列表没有刷新,直到我不关闭热点以下是我的代码片段...

public ArrayList getClientList(boolean onlyReachables, int reachableTimeout) {

public ArrayList getClientList(boolean onlyReachables,int reachableTimeout){

    BufferedReader br = null;
    ArrayList<ClientScanResultSO> result = null;

   try {
        result = new ArrayList<ClientScanResultSO>();
        br = new BufferedReader(new FileReader("/proc/net/arp"));
        String line;
        while ((line = br.readLine()) != null) {
            String[] splitted = line.split(" +");

            if ((splitted != null) && (splitted.length >= 4)) {
                // Basic sanity check
                String mac = splitted[3];
                System.out.println("mac is***************"+ mac);
                if (mac.matches("..:..:..:..:..:..")) {
                    boolean isReachable = InetAddress.getByName(splitted[0]).isReachable(reachableTimeout);
                    String name = InetAddress.getByName(splitted[0]).getHostName();
                    if (!onlyReachables || isReachable) {
                        result.add(new ClientScanResultSO(splitted[0], splitted[3], splitted[5], isReachable, name));
                    }
                }
            }
        }
    } catch (Exception e) {
        Log.e(this.getClass().toString(), e.getMessage());
    } finally {
        try {
            br.close();
        } catch (IOException e) {
            Log.e(this.getClass().toString(), e.getMessage());
        }
    }

    return result;
}

I want the wifi devices are not to be shown in the list when they are disconnected from my android device which is hotspot enabled Somebody please help me in this regard. Thanks!

我希望wifi设备不会显示在列表中,当他们从我的Android设备断开连接,这是启用热点有人请在这方面帮助我。谢谢!

1 个解决方案

#1


0  

I am not sure about my understanding is correct, i have a concern on the following line of your code String[] splitted = line.split(" +"); Are you using a white space and + symbol for concatenating MAC address's of the devices.

我不确定我的理解是否正确,我对您的代码的以下行有所顾虑String [] splitted = line.split(“+”);您是否使用空格和+符号来连接设备的MAC地址。

Regards Ajil

#1


0  

I am not sure about my understanding is correct, i have a concern on the following line of your code String[] splitted = line.split(" +"); Are you using a white space and + symbol for concatenating MAC address's of the devices.

我不确定我的理解是否正确,我对您的代码的以下行有所顾虑String [] splitted = line.split(“+”);您是否使用空格和+符号来连接设备的MAC地址。

Regards Ajil