0

初めて Wifi を有効にしてから無効にするときは問題ありませんが、後で (すぐに、またはモバイル データが再び接続されるのを待って) Wifi を再度有効にしようとすると、NullPointerException がスローされ、強制的に閉じられます。

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");
}
4

1 に答える 1

0

デバッグは試しましたか?現時点で wifiResults が null である可能性があります

于 2012-04-05T01:46:59.663 に答える