Android:为什么WifiManager.getConnectionInfo()。getSSID()返回断开连接的SSID

时间:2016-12-28 16:57:36

标签: android

我正在开发Android应用程序。该应用程序将在启动时继续尝试连接到专用的WiFi AP。这很有效。但是,当我测试关闭AP时,所以应用程序必须已从AP断开连接,当我使用WifiManager.getConnectionInfo().getSSID()检查SSID时,我的应用程序仍会返回AP的SSID,为什么?如何在未连接的情况下更新当前的SSID,即使它返回“unknown ssid”?

下面是我检查SSID的方法,应用程序将连续调用此方法:

WifiManager wifiManager; // <- In MainAativity

// ....
int checkWiFiSSID() {
    wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);

    if (!wifiManager.isWifiEnabled()) {
        Log.d(TAG, "WiFi is disabled, enable it now");
        wifiManager.setWifiEnabled(true);
    } else {

        WifiInfo wifiInfo = wifiManager.getConnectionInfo();
        String ssid = wifiInfo.getSSID();

        // This line always show the AP SSID even the AP is powered down, why??
        Log.d(TAG, "AP SSID: " + ssid); 
    }
}

谢谢。

更新:

仔细阅读文档后,我发现如果WifiManager尝试连接到AP,即使没有连接,getSSID()也会返回其SSID。因为我的应用程序一旦断开连接就会继续尝试连接到AP。我想这就是原因,但我不确定。

0 个答案:

没有答案