список последних подключенных устройств Android Hotspot

Я использовал следующий код для чтения IP-адреса подключенного устройства: -phones-access-point">Как я могу получить количество устройств, подключенных через телефоны, но я получаю ложный список, т.е. список показывает более ранние устройства, которые были подключены к точке доступа и в настоящее время отключены. есть ли другой способ получить обновленный список. или как обновить файл /proc/net/arp, чтобы получить последний список

также прочитайте это, связанное с arp на linux, но не нахожу выхода.


person Rahul    schedule 10.05.2017    source источник


Ответы (1)


Это работает для меня, оно не покажет подключенных устройств и их mac-адреса.

 public int getClientList() {
    int macCount = 0;
    BufferedReader br = null;
    String flushCmd = "sh ip -s -s neigh flush all";
    Runtime runtime = Runtime.getRuntime();
    try {
        runtime.exec(flushCmd, null, new File("/proc/net"));
    } catch (IOException e) {
        e.printStackTrace();
    }

    try {
        br = new BufferedReader(new FileReader("/proc/net/arp"));
        String line;
        while ((line = br.readLine()) != null) {
            String[] splitted = line.split(" +");
            if (splitted != null) {
                // Basic sanity check
                String mac = splitted[3];
                System.out.println("Mac : Outside If " + mac);
                if (mac.matches("..:..:..:..:..:..")) {
                    macCount++;
               /* ClientList.add("Client(" + macCount + ")");
                IpAddr.add(splitted[0]);
                HWAddr.add(splitted[3]);
                Device.add(splitted[5]);*/
                    System.out.println("Mac : " + mac + " IP Address : " + splitted[0]);
                    System.out.println("Mac_Count  " + macCount + " MAC_ADDRESS  " + mac);
                    Toast.makeText(
                            getApplicationContext(),
                            "Mac_Count  " + macCount + "   MAC_ADDRESS  "
                                    + mac, Toast.LENGTH_SHORT).show();

                }
           /* for (int i = 0; i < splitted.length; i++)
                System.out.println("Addressssssss     "+ splitted[i]);*/

            }
        }
    } catch (Exception e) {

    }
    return macCount;
}

Попробуйте это

person sanjay    schedule 21.12.2018