0

我有一个非常简单的应用程序,它列出了可用的 WiFi 接入点(路由器)。

每当应用程序打开或恢复并且未启用 WiFi 时,我都会设置一个 AlertDialog。这会将用户带到他们打开 WiFi 的 WiFi 设置。

然后用户点击后退按钮并返回到我的应用程序。然后我的应用程序会看到 WiFi 已启用并输出一个列表。

问题是,即使启用了 WiFi - AP 列表尚未完成(即使我正在检查扫描是否已完成。

那么,我怎样才能暂停我的活动足够长的时间,以便获得完整的列表?

WifiManager oWiFiManager = (WifiManager) getSystemService(WIFI_SERVICE);

// Only proceed if WiFi is Enabled
if (oWiFiManager.isWifiEnabled())
{
    boolean bScanComplete = oWiFiManager.startScan();

    if (bScanComplete)
    {
        /* Scan is complete. Safe to proceed.
         * This is the problem area because for some reason there are no networks listed (but there are in reality).
         */
    }
}

else
{
    // Tell user WiFi is Disabled & take back to settings dialog
}
4

1 回答 1

0

您应该能够使用 ConnectivityManager 来获取 Wifi 适配器的状态。从那里您可以检查它是否已连接甚至可用。

ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

if (mWifi.isConnected()) {
 // Do whatever
}

      Dont forget to add android.permission.ACCESS_NETWORK_STATE to your AndroidManifest.xml for this to work
于 2013-09-23T18:02:51.493 回答