2014-01-03 3 views
0

Я хочу определить подключение к моей точке доступа. Я хочу получать уведомления, когда пользователи подключены. Я знаю, что могу запросить arp table (/ proc/net/arp), из которого я могу найти подключенных пользователей. Вот пример кода:получать уведомления, когда пользователи подключили точку доступа WIFI

public static ArrayList<ClientScanResult> getClientList() { 
    BufferedReader br = null; 
    ArrayList<ClientScanResult> result = null; 

    try { 
     result = new ArrayList<ClientScanResult>(); 
     br = new BufferedReader(new FileReader("/proc/net/arp")); 
     String line; 
     while ((line = br.readLine()) != null) { 
      String[] splitted = line.split(" +"); 
      Log.d("Debug:line=", line); 
      if ((splitted != null) && (splitted.length >= 4)) { 
       // Basic sanity check 
       String mac = splitted[3]; 

       if (mac.matches("..:..:..:..:..:..")) { 
        result.add(new ClientScanResult(splitted[0], splitted[3], splitted[5])); 
       } 
      } 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } finally { 
     try { 
      br.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

    return result; 
} 

Вопрос: Есть ли лучший способ сделать это, кроме просмотра АРП-таблицы каждые п секунд?

UPD: При подключении к точке доступа, а затем отключить, то запись будет по-прежнему находиться в АРП-table.That есть, пока я не могу получить список всех подключенных пользователей

+0

Разрешение штата Wifi в манифесте – Boopathi

+0

@Boopathi. Да. Он был там – cska631

+0

дал разрешение на Wi-Fi в вашей заявке – Boopathi

ответ

1

Вы можете добавить BroadcastReciever в состояние соединения. http://developer.android.com/training/monitoring-device-state/connectivity-monitoring.html

+0

И тогда я смогу определить при подключении к моей точке доступа? – cska631

+0

Я нашел только одного BroadcastReciever, связанного с точкой доступа (WIFI_AP_STATE_CHANGED_ACTION). И он отслеживает только состояние точки доступа, но я хочу, чтобы состояние подключения к точке доступа – cska631

+0

Это триггер для запуска вашего кода ... вместо запуска каждые несколько секунд –

Смежные вопросы