0

次のコードを使用して、ホットスポット対応デバイスに接続されている 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デバイスがリストに表示されないようにしたいのですが、この点で誰か助けてください。ありがとう!

4

1 に答える 1

0

私の理解が正しいかどうかはわかりません。コードの次の行に懸念があります String[] splitted = line.split(" +"); デバイスの MAC アドレスを連結するために空白と + 記号を使用していますか。

よろしくアジル

于 2012-09-21T12:21:04.400 に答える