次のコードを使用して、ホットスポット対応デバイスに接続されている Wi-Fi デバイスをスキャンしています。ほぼすべてのデバイスを検出していますが、問題は、wifi デバイスがホットスポットから切断されたときにリストが更新されないことです (つまり、切断されていてもリストには wifi デバイスが表示されます。リストにはデバイスが表示されるはずがありません)。切断されます)。ホットスポットデバイスに一度接続されている場合、リストにwifiデバイスが表示され、ホットスポットをオフにしない限りデバイスリストが更新されません 以下は私のコードスニペットです...
public ArrayList getClientList(boolean onlyReachables, int reachableTimeout) {
BufferedReader br = null;
ArrayList<ClientScanResultSO> result = null;
try {
result = new ArrayList<ClientScanResultSO>();
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)) {
// Basic sanity check
String mac = splitted[3];
System.out.println("mac is***************"+ mac);
if (mac.matches("..:..:..:..:..:..")) {
boolean isReachable = InetAddress.getByName(splitted[0]).isReachable(reachableTimeout);
String name = InetAddress.getByName(splitted[0]).getHostName();
if (!onlyReachables || isReachable) {
result.add(new ClientScanResultSO(splitted[0], splitted[3], splitted[5], isReachable, name));
}
}
}
}
} catch (Exception e) {
Log.e(this.getClass().toString(), e.getMessage());
} finally {
try {
br.close();
} catch (IOException e) {
Log.e(this.getClass().toString(), e.getMessage());
}
}
return result;
}
ホットスポットが有効になっているAndroidデバイスから切断されたときに、wifiデバイスがリストに表示されないようにしたいのですが、この点で誰か助けてください。ありがとう!