2013-02-17 11 views

Odpowiedz

1

Utwórz klasę odbiornika w swojej klasie aktywności, która wykona jakąś czynność (wyświetl komunikat/zapis w zmiennej), gdy zmieni się siła RSSI. Można to zrobić w następujący sposób:

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 to metoda, którą należy określić, która wykonuje wymagane zadanie.

+0

czy jesteś pewien, że dotyczy to Wi-Fi Direct? Myślę, że dotyczy to zwykłego Wi-Fi! – noor

+0

@ alsadi90 przepraszam za spóźnioną odpowiedź! Masz rację. W rzeczywistości dotyczy to Wi-Fi. Wcześniej, myślałem, że moc sygnału RSSI dla WiFi i Wi-Fi Direct musi być taka sama, ale teraz wygląda na to, że tak nie jest. Android działa na Linux-ie i możesz potrzebować niektórych argumentów linii poleceń, aby uzyskać RSSI dla WiFi-Direct. Zobacz [tutaj] (http://android.stackexchange.com/questions/40821/how-to-measure-the-rssi-strength-signal-between-peers-using-wifi-direct) – 10101010

0

Do czasu obecnej wersji Androida (v4.2.2 r1), RSSI dla WiFi Direct jest zakodowany na stałe.

Link

Powiązane problemy