62 votes

Comment obtenir le nom du réseau wifi sur Android à l'aide de l'API Android?

J'ai pensé que je devrais utiliser NetworkInterface :: getDisplayName. J'ai reçu un nom, mais ce nom est différent de ce nom que je peux voir lorsque je choisis le réseau auquel je souhaite me connecter.

S'il vous plaît aider ..

[MODIFIER]

Selon Loxley répondre:

 WifiManager wifiMgr = (WifiManager) getActivity().getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiMgr.getConnectionInfo();
String name = wifiInfo.getSSID();
 

46voto

Loxley Points 1174

android.net.wifi.WifiInfo.getSSID?

25voto

snayde Points 149
 public String getWifiName(Context context) {
  WifiManager manager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
  if (manager.isWifiEnabled()) {
     WifiInfo wifiInfo = manager.getConnectionInfo();
     if (wifiInfo != null) {
        DetailedState state = WifiInfo.getDetailedStateOf(wifiInfo.getSupplicantState());
        if (state == DetailedState.CONNECTED || state == DetailedState.OBTAINING_IPADDR) {
           return wifiInfo.getSSID();
        }
     }
  }
  return null;
 

}

19voto

tony gil Points 2966

ce (mix et match de diverses réponses de Marakana et autres) sera à la fois d'obtenir tout ce que vous voulez extraire de:

  1. tous les routeurs wifi dans la gamme
  2. connecté au routeur wifi
  3. tous les réseaux sans fil (votre appareil)

    public String getCurrentSsid(Context context) {
    
      String ssid = null;
      ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
      NetworkInfo networkInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
      if (networkInfo.isConnected()) {
        final WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        final WifiInfo connectionInfo = wifiManager.getConnectionInfo();
        if (connectionInfo != null && !(connectionInfo.getSSID().equals(""))) {
            //if (connectionInfo != null && !StringUtil.isBlank(connectionInfo.getSSID())) {
          ssid = connectionInfo.getSSID();
        }
     // Get WiFi status MARAKANA
        WifiInfo info = wifiManager.getConnectionInfo();
        String textStatus = "";
        textStatus += "\n\nWiFi Status: " + info.toString();
        String BSSID = info.getBSSID();
        String MAC = info.getMacAddress();
    
        List<ScanResult> results = wifiManager.getScanResults();
        ScanResult bestSignal = null;
        int count = 1;
        String etWifiList = "";
        for (ScanResult result : results) {
            etWifiList += count++ + ". " + result.SSID + " : " + result.level + "\n" +
                    result.BSSID + "\n" + result.capabilities +"\n" +
                    "\n=======================\n";
        }
        Log.v(TAG, "from SO: \n"+etWifiList);
    
        // List stored networks
        List<WifiConfiguration> configs = wifiManager.getConfiguredNetworks();
        for (WifiConfiguration config : configs) {
            textStatus+= "\n\n" + config.toString();
        }
        Log.v(TAG,"from marakana: \n"+textStatus);
      }
      return ssid;
    }
    

AVERTISSEMENT: alors que c'est le code de travail, pas de pseudo-code, son seul but est d'illustrer les méthodes pour l'extraction des données de connexions wifi et il doit être adapté (et nettoyé avant de l'utiliser.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X