当前位置: 首页 > 知识库问答 >
问题:

最新连接设备列表android热点

朱欣荣
2023-03-14

我使用以下代码读取连接的设备ip地址如何获取通过手机连接的设备数量,但我得到的列表是错误的,即列表显示了连接到热点但当前已断开连接的早期设备。有没有其他方法可以更新列表。或者如何刷新/proc/net/arp文件以获取最新列表

也阅读这是有关arp在linux上,但不找到出路。

共有1个答案

龙星辰
2023-03-14

这对我来说很有效,它将显示没有连接的设备及其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;
}

试试这个

 类似资料:
  • 我想检索连接到智能手机WiFi热点的所有设备的IP地址。在Android 10及以下版本中,我能够通过执行以下代码获得此列表: 然而,在Android 11中,IP命令似乎不再有效(https://developer.android.com/training/articles/user-data-ids#mac-11岁以上) 在Android11中,有没有其他方法可以获取已连接客户端的IP地址?

  • 我们可以从adb shell获取连接到android设备的设备列表吗?

  • 我如何获得Android所有已连接蓝牙设备的列表,而不考虑配置文件? 或者,我看到您可以通过BluetoothManager获取特定配置文件的所有连接设备。获取连接的设备。 我想我可以通过ACTION_ACL_CONNECTED/ACTION_ACL_DISCONNECTED监听连接/断开来查看哪些设备连接...似乎容易出错。 但我想知道是否有更简单的方法来获取所有已连接蓝牙设备的列表。

  • 我可以通过调用来获取内部存储,它返回内部存储的路径。 这方面的任何帮助都将非常感谢,因为没有一个标准的AFAIK可以用来检索所有连接的存储设备的列表。 还有,很多解决方案在不同的设备和Android版本上不起作用。

  • 当使用P2P_STAR时,由于此拓扑使用Wi-Fi热点,设备的最大数量为10个。也就是说,如果您没有路由器。 这让我不禁要问两个问题: 我知道附近的连接使用BLE、蓝牙和Wi-Fi直接连接。我知道蓝牙有一个最大的理论数量~7个设备,这是3-4个真正的连接。我知道Wi-Fi热点最多有10个连接。我知道BLE最多可以容纳20个理论连接(虽然不知道真正连接的数量)。如果BLE(理论上)可以拥有20个连接

  • 问题内容: 我想创建模块自动更新USB设备列表(不仅是大容量存储)。现在它的工作非常不礼貌- 它具有附加线程,该线程在1秒钟后更新了设备列表。但是也许您知道如何处理一些插件事件,这些事件会生成OS(例如Windows XP及更高版本),或者通过另一种方式简化此过程。感谢您的时间! 问题答案: 这个问题似乎是一半的设计,一半的实现。似乎您最担心要为Java USB服务(例如jUSB)找到某种方式来服