2017-04-21 4 views
1

スマートフォンのホットスポットでクライアントの接続イベントをリッスンする方法を実装しようとしています。 android.net.wifi.WIFI_HOTSPOT_CLIENTS_CHANGEDはもはや使用できません。これどうやってするの?スマートフォンがスマートフォンのホットスポットに接続すると、スマートフォンから通知されるため、これが可能だと思います。android.net.wifi.WIFI_HOTSPOT_CLIENTS_CHANGED代替

答えて

0

インテントアクションを使用することはできません...カスタムメソッドを使用する必要があります。IPテーブル(/ proc/net/arp)を定期的にチェック/読み取りするバックグラウンドスレッドを作成し、あなたは...私が使ったスニペットです。

読む腹腔内一覧表

public ArrayList<String> getConnectedDevices() { 
ArrayList<String> arrayList = new ArrayList(); 
try { 
    BufferedReader bufferedReader = new BufferedReader(new FileReader("/proc/net/arp")); 
    while (true) { 
     String readLine = bufferedReader.readLine(); 
     if (readLine == null) { 
      break; 
     } 
     String[] split = readLine.split(" +"); 
     if (split != null && split.length >= 4) { 
      arrayList.add(split[0]); 
     } 
    } 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
return arrayList; 
} 

class CheckHotSpotConnection implements Runnable { 
private CheckHotSpotConnection() { 
} 

public void run() { 
    int i = 0; 
    while (discoverClient()) { 
     i = getConnectedDevices().size(); 
     if (i > 1) { 
      //client discovered 

      //disable client discovery to end thread 
     } else { 
      try { 
       Thread.sleep(2000); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
} 
} 

スタートスレッド

new Thread(new CheckHotSpotConnection()).start(); 
をチェックするために実行可能な作成