2012-04-05 90 views
0

第一次啓用Wifi,然後禁用它一切都很好,但如果我嘗試重新啓用Wifi後(立即或等待移動數據再次連接)它會拋出一個NullPointerException並強制關閉。NullPointerException禁用WiFi狀態並嘗試再次啓用

private void toggleWifi(){ 

    if (wifi == 0){ 
     wifiManager.setWifiEnabled(true); 
     scanOnly = wifiManager.createWifiLock(WifiManager.WIFI_MODE_SCAN_ONLY, "scanOnly"); 
     scanOnly.acquire(); 

     bWifi.setText("Turn Wifi OFF"); 

     List<ScanResult> wifiResults = wifiManager.getScanResults(); 

     StringBuilder sb = new StringBuilder("Scan Results:\n");    
     sb.append("-----------------------\n"); 

     for (ScanResult r : wifiResults) { 
      sb.append(r.SSID + " " + r.level + " dBM\n"); 
     } 

     tvWifi.setText(sb.toString()); 

     wifi = 1; 

    } else { 
     scanOnly.release(); 
     wifiManager.setWifiEnabled(false); 

     bWifi.setText("Turn WiFi ON"); 

     tvWifi.setText(""); 

     wifi = 0; 
    } 

} 

的錯誤是在這條線:

for (ScanResult r : wifiResults) { 
    sb.append(r.SSID + " " + r.level + " dBM\n"); 
} 

回答

0

您是否嘗試過調試?目前wifiResults可能爲空

+0

看來問題就在這裏。但是爲什麼我第二次運行它而不是第一次? – Rory 2012-04-05 01:58:44

+0

@Rory我想,你應該等一段時間才能找到無線網絡 – 2012-04-05 06:24:31

+0

我只是做了一點錯誤檢查,現在解決這個問題。感謝您的輸入! – Rory 2012-04-05 21:19:21