android api 29+ 热点/路由器客户端的IP/mac

时间:2021-07-14 11:23:06

标签: java android kotlin hotspot tethering

我在访问热点客户端的 IP/MAC 地址时遇到问题。我的应用程序通过 UDP 与 ESP8266 通信。如果可用,ESP 连接到热点,当我打开应用程序时,我需要“扫描”热点上可用的地址并选择 ESP。这次我使用 arp tab 。但是..... api 从 28 升级到 30 后它不起作用(我现在为什么,安全等......)。

fun getConDevicesMac(): ArrayList<String> {
    Toast.makeText(this@WiFiSett,"infunc",Toast.LENGTH_SHORT ).show()
    var res = ArrayList<String>()
    //wifiManager.updateArpFile() // is there possibility?
    val br: BufferedReader
    try {
        br = BufferedReader(FileReader("/proc/net/arp"))
        var line: String
        line = br.readLine()
        while (br.readLine().also({ line = it }) != null) {
            val sp = line.split(" +".toRegex()).toTypedArray()
            var sp2 =""
                // comparing mac adress
            if (sp[3].toString() == "2c:f4:32:79:f0:d1"){
                Toast.makeText(this@WiFiSett,"there is ESP",Toast.LENGTH_SHORT ).show()
                sp2 = sp[0]+"\n"+sp[3] + "      ESP"
            }else{
                sp2 = sp[0]+"\n"+sp[3]
            }

            res.add(sp2)
        }
        br.close()
    } catch (e: Exception) {
        Toast.makeText(this@WiFiSett,"problem",Toast.LENGTH_SHORT ).show()
    }

    return res
}

如果我能在热点设置中看到这个,为什么很难访问热点客户端的 ip 和 mac 对我来说很奇怪...... 有没有办法在 API 30 /30+ 中尽可能简单地获取 IP 和 MAC 地址? 也许可以授予对 arp 表的访问权限?

我不是开发人员,它只是我的爱好。应用程序用于控制水族馆,现在我在 *** 因为它不起作用。这次我对手动输入 IP 地址进行了新的布局,但是...你现在。

0 个答案:

没有答案