2013-02-17 13 views
13

Ich muss Wi-Fi Direct-Signal (RSSI-Signal) zwischen zwei Android-Handys messen. Wie kann ich das tun?Android Wi-Fi Direct lesen rssi Signalstärke

+0

Haben Sie eine Lösung dafür gefunden? – ntrx

+0

Benötigen Sie eine Methode, um RSSI von WiFi oder etwas anderes zu erhalten? –

Antwort

1

Erstellen Sie eine Broadcast Receiver-Klasse innerhalb Ihrer Aktivitätsklasse, die eine Aktion ausführt (eine Nachricht anzeigen/in einer Variablen speichern), wenn sich die RSSI-Stärke ändert. Dies kann wie folgt geschehen:

public class myReceiver extends BroadcastReceiver 
{ 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     String myAction = intent.getAction(); 
     if (myAction.equals(WifiManager.RSSI_CHANGED_ACTION)) 
     { 
      manageNewRssi(intent.getIntExtra(WifiManager.EXTRA_NEW_RSSI,0)); 
     } 
    } 
} 

manageNewRssi ist eine Methode, die Sie haben zu definieren, die tut die erforderliche Aufgabe.

+0

Sind Sie sicher, dass dies für Wi-Fi Direct ist? Ich denke, das ist für normales WLAN! – noor

+0

@ alsadi90 Sorry für späte Antwort! Sie haben Recht. Dies ist eigentlich für Wi-Fi. Eigentlich dachte ich früher, dass RSSI-Signalstärken für WiFi und WiFi Direct gleich sein müssen, aber jetzt sieht es so aus, als wäre es nicht so. Android funktioniert auf Linux und Sie müssen möglicherweise einige Befehlszeilenargumente verwenden, um RSSI für WiFi-Direct zu erhalten. Schauen Sie [hier] (http://android.stackexchange.com/questions/40821/how-to-measure-the-rsssi-strength-signal-between-peers-using-wifi-direct) – 10101010

0

Bis zur aktuellen Version von Android (v4.2.2 r1) ist der RSSI für WiFi Direct fest codiert.

Link