在android低版本中獲取已連接熱點的ip使用如下方法:
private ArrayList<String> getConnectIp() throws Exception {
ArrayList<String> connectIpList = new ArrayList<String>();
BufferedReader 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) {
String ip = splitted[0];
connectIpList.add(ip);
}
}
return connectIpList;
}
通過系統的arp串列得到,但是到了android10由于權限的問題無法獲取到該檔案,經過在網上查找和測驗,可以通過如下方法的到,只需要修改上述代碼的一部分
private ArrayList<String> getConnectIp() throws Exception {
ArrayList<String> connectIpList = new ArrayList<String>();
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("ip neigh show");
proc.waitFor();
BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));
//BufferedReader 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) {
String ip = splitted[0];
connectIpList.add(ip);
}
}
return connectIpList;
}
經過實際測驗,可以獲取到已連接設備的ip地址,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/234931.html
標籤:其他
下一篇:第一行代碼——第七章(跨程式共享資料-探究內容提供器(程式運行時申請權限)) F8-59-71-6E-8A-52 2024
