我在访问热点客户端的 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 地址进行了新的布局,但是...你现在。