【问题标题】:How to get name of wifi-network out of android using android API?如何使用android API从android中获取wifi网络的名称?
【发布时间】:2011-04-01 17:01:42
【问题描述】:

我认为我应该使用 NetworkInterface::getDisplayName。我有一些名字,但是当我选择要连接的网络时,这个名字与我看到的这个名字不同。

【问题讨论】:

  • 有谁知道这样做需要哪些权限?
  • android.permission.ACCESS_WIFI_STATE

标签: android wifi android-wifi


【解决方案1】:

简单的2行

WifiManager w=(WifiManager)getSystemService(Context.WIFI_SERVICE);
String wifi=w.getConnectionInfo().getSSID();

记得把它放在你的清单中

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

【讨论】:

    【解决方案2】:

    android.net.wifi.WifiInfo.getSSID?


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

    【讨论】:

    • 对于 Xamarin C#:Android.Net.Wifi.WifiInfo.SSID
    • 我已将提问者的答案添加到您的答案中。我希望没关系@Loxley。
    【解决方案3】:

    这(混合和匹配来自 Marakana 和其他人的各种答案)将同时获得您想要从中提取的所有内容:

    1. 范围内的所有 wifi 路由器
    2. 已连接 wifi 路由器
    3. 所有存储的 wifi 网络(在您的设备上)

      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;
      }
      

    免责声明:虽然这是工作代码,而不是伪代码,但它的唯一目的是说明从 wifi 连接中提取数据的方法,在使用前应该对其进行调整(和清理)。

    【讨论】:

    • @Mr_and_Mrs_D 1. marakana 是 marko gargenta,许多示例项目的作者。 2.正如我所说,这是一个混合搭配,包括你提到的示例代码。 :)
    • 检测到所有wifi后,如何连接那个wifi。
    • 请@DennySharma 作为一个单独的问题提出。 :)
    • 别忘了权限:&lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/&gt; &lt;uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/&gt;
    【解决方案4】:
    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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-28
      • 2011-12-03
      • 1970-01-01
      • 2022-10-18
      • 1970-01-01
      • 2018-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多