後直接。但是,當我爲800毫秒添加一個Thread.Sleep()時,它可以工作。在連接WiFi和WifiInfo對象實際獲取信息的事件中似乎有延遲。下面的代碼片段工作:WifiInfo SSID空當WIFI_STATE_ENABLED由我直接廣播接收器後WifiInfo的SSID值爲null收到WIFI_STATE_ENABLED收到
else if (intent.getAction().equals(WifiManager.WIFI_STATE_CHANGED_ACTION)) {
int extraWifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN);
switch (extraWifiState) {
case WifiManager.WIFI_STATE_ENABLED:
// The SSID is null just after connection is established. This
// event seems over eager.
try {
Thread.sleep(800, 0);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (!wifiFunctions.connectedToGConnectHotspot()) {
removeConnectedNotification();
} else {
settings.setLastNotificationTime(System.currentTimeMillis());
notifyUserOfAvailableHotspot(true);
return;
}
break;
這一工程,但它是非常狡猾的。如果在某些設備上需要更長時間會怎樣?是否有另一種方法來獲取連接的SSID。我查看了EXTRA_NETWORK_INFO,但從API級別14開始不推薦使用,並且似乎也沒有包含SSID。有沒有另外一種方法可以在不引入虛假等待的情況下獲得SSID?
你的Manifest文件中的代碼? –