2015-09-13 4 views
-1

J'utilisé le code folowing mais j'ai encore des problèmes, il ne retourne pas d'informations:Comment obtenir des informations de signal wifi: force, vitesse de liaison sur studio android?

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     //initializeWiFiListener(); 

    } 

    public void initializeWiFiListener() { 

     String connectivity_context = Context.WIFI_SERVICE; 

     final WifiManager wifi = (WifiManager) getSystemService(connectivity_context); 

     if (!wifi.isWifiEnabled()) { 

      if (wifi.getWifiState() != WifiManager.WIFI_STATE_ENABLING) { 

       wifi.setWifiEnabled(true); 
      } 
     } 

     registerReceiver(new BroadcastReceiver() { 
      public void onReceive(Context context, Intent intent) { 

       WifiInfo info = wifi.getConnectionInfo(); 
       String ssid = info.getSSID(); 
       int rssi = info.getRssi(); 
       int speed = info.getLinkSpeed(); 
       TextView t1 = (TextView) findViewById(R.id.textView); 
       t1.setText(ssid + " " + Integer.toString(rssi) + " " + Integer.toString(speed)); 
      } 

     }, new IntentFilter(WifiManager.RSSI_CHANGED_ACTION)); 
    } 

} 

Il n'y a pas d'informations sur mon wifi connecté.

Comment obtenir des informations de signal wifi: force, vitesse de liaison?

+0

Que voulez-vous dire "il n'y a pas d'information"? Est-ce que 'onReceive()' est appelé? Avez-vous ajouté la journalisation pour vérifier cela? Avez-vous demandé l'autorisation 'android.permission.ACCESS_WIFI_STATE' dans le manifeste? –

+0

Je l'ai déjà fait mais quand j'ai appelé onReceive ça me montre un échec! –

+0

S'il vous plaît expliquer. Quel échec voyez-vous? Que montrent les journaux? Vous ne devriez pas appeler 'onReceive()' de toute façon, Android doit le faire. –

Répondre

0

Sur la base de la documentation, appelez getConnectionInfo() on WifiManager pour obtenir un objet WifiInfo. Là-bas, vous avez getRssi() pour la force du signal et getLinkSpeed() pour la vitesse de liaison.

+0

J'ai déjà importé la classe android.net.wifi.WifiManager mais je n'ai pas résolu le problème. Pouvez-vous clarifier votre réponse par un code. S'il vous plaît ! –