我有一个非常简单的应用程序,其中列出了可用的WiFi接入点(路由器)。
每当应用程序打开或恢复时,我都会设置AlertDialog。 WiFi未启用。这会将用户带到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
}
答案 0 :(得分: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