2016-04-21 26 views
1

Gibt es eine Übertragung in Android, wenn Peer oder Client mit Android Hotspot verbunden.Android HotSpot verbundenen Clients

Wie ich habe Hotspot erstellt und möchte warten, bis jeder Peer oder Client eine Verbindung herstellen. So, wie ich erfahren werde, dass irgendein Gleicher verbunden ist.

Antwort

0

1) Sie können BroadcastReciever verwenden:

android.net.wifi.WIFI_HOTSPOT_CLIENTS_CHANGED

Client-Verbindung zu erkennen. Fügen Sie in Ihrem AndroidManifest:

<receiver 
    android:name=".WiFiConnectionReciever" 
    android:enabled="true" 
    android:exported="true" > 
    <intent-filter> 
     <action android:name="android.net.wifi.WIFI_HOTSPOT_CLIENTS_CHANGED" /> 
    </intent-filter> 
</receiver> 

und in Ihrer Aktivität:

IntentFilter mIntentFilter = new IntentFilter(); 
    mIntentFilter.addAction("android.net.wifi.WIFI_HOTSPOT_CLIENTS_CHANGED"); 
        rcv = new WiFiConnectionReciever(); 
        registerReceiver(rcv, mIntentFilter); 

2) Alternativ können Sie die Liste der angeschlossenen Geräte scannen und Zeit zu Zeit vergleichen, wenn sich etwas geändert hat.

public void getClientList() { 
int macCount = 0; 
BufferedReader br = null; 
try { 
    br = new BufferedReader(new FileReader("/proc/net/arp")); 
    String line; 
    while ((line = br.readLine()) != null) { 
     String[] splitted = line.split(" +"); 
     if (splitted != null) { 
      // Basic sanity check 
      String mac = splitted[3]; 
      System.out.println("Mac : Outside If "+ mac); 
      if (mac.matches("..:..:..:..:..:..")) { 
       macCount++; 
       /* ClientList.add("Client(" + macCount + ")"); 
       IpAddr.add(splitted[0]); 
       HWAddr.add(splitted[3]); 
       Device.add(splitted[5]);*/ 
       System.out.println("Mac : "+ mac + " IP Address : "+splitted[0]); 
       System.out.println("Mac_Count " + macCount + " MAC_ADDRESS "+ mac); 
      Toast.makeText(
        getApplicationContext(), 
        "Mac_Count " + macCount + " MAC_ADDRESS " 
          + mac, Toast.LENGTH_SHORT).show(); 

      } 
      /* for (int i = 0; i < splitted.length; i++) 
       System.out.println("Address "+ splitted[i]);*/ 

     } 
    } 
} catch(Exception e) { 

}    
} 
+0

RUNDFUNK nicht funktioniert (android.net.wifi.WIFI_HOTSPOT_CLIENTS_CHANGED) und ich bin schon zweite Methode Timertask verwenden, aber ich bin auf der Suche, wie diese Sendung (android.net.wifi.WIFI_HOTSPOT_CLIENTS_CHANGED), aber es funktioniert nicht –

+0

Haben Sie Berechtigungen angefordert: ACCESS_WIFI_STATE, CHANGE_WIFI_STATE, CHANGE_WIFI_MULTICAST_STATE? – Fiil

+0

Ja, ich habe alle drei Berechtigungen verwendet und teste mit Android M 6.0. Aber hat nicht funktioniert. –

Verwandte Themen