Cannot instantiate the type List<ScanResult>

T

the_time

Ambitioniertes Mitglied
0
Ich versuche die stärkste Wlan-verbindung, die gerade verfügbar ist und deren SSID mit dem folgenden Buchstaben beginnt in die xml datei anzuzeigen aber ich kriege gerade diesen Fehler "ssid cannot be resolved to a variable" in dieser Zeile "return ssid;" am ende der 2ten Methode.

Ich habe den anderen Fehler im Titel behoben.


PHP:
	private void check_wifi_available() {
		WifiManager wifiManager = (WifiManager) this
				.getSystemService(this.WIFI_SERVICE);

		// WifiInfo info = wifiManager.getConnectionInfo();

		final List<ScanResult> results = wifiManager.getScanResults();
		if (results != null) {

			List<ScanResult> updatedResults = new ArrayList<ScanResult>();
			// pick wifi access ponits which begins with these "KD" characters.
			for (int i = 0; i < results.size(); i++) {
				String ssid = results.get(i).SSID;
				if (ssid.startsWith("KD")) {

					updatedResults.add(results.get(i));
				}
			}
			if (updatedResults.size() > 0) {
				String a = calculateBestAP(updatedResults);
				textWifi.setText(a.toString());
			}
		}
	}

	// Pick the strongest wifi access point signal.

	private String calculateBestAP(final List<ScanResult> updatedResults) {
		ScanResult bestSignal = (ScanResult) updatedResults.get(0);
		for (int i = 1; i < updatedResults.size(); i++) {
			ScanResult result = (ScanResult) updatedResults.get(i);
			bestSignal = (WifiManager.compareSignalLevel(bestSignal.level,
					result.level) < 0) ? result : bestSignal;
			String ssid = bestSignal.SSID;
		}
		return ssid; // hier ist der Fehler.
	}
 
Zuletzt bearbeitet:
Sichtbarkeitsproblem.
Du definierst ssid innerhalb der For Schleife, also gibt es die Variable auch nur dort.

PHP:
        ScanResult bestSignal = (ScanResult) updatedResults.get(0);
        String ssid;
        for (int i = 1; i < updatedResults.size(); i++) {
            ScanResult result = (ScanResult) updatedResults.get(i);
            bestSignal = (WifiManager.compareSignalLevel(bestSignal.level,
                    result.level) < 0) ? result : bestSignal;
            ssid = bestSignal.SSID;
        }
        return ssid; // hier ist der Fehler.

Geht sogar ganz ohne ssid Variable.
PHP:
        ScanResult bestSignal = (ScanResult) updatedResults.get(0);
        for (int i = 1; i < updatedResults.size(); i++) {
            ScanResult result = (ScanResult) updatedResults.get(i);
            bestSignal = (WifiManager.compareSignalLevel(bestSignal.level,
                    result.level) < 0) ? result : bestSignal;
        }
        return bestSignal.SSID; // hier ist der Fehler.
 
Zuletzt bearbeitet:

Ähnliche Themen

Y
Antworten
4
Aufrufe
1.209
swa00
swa00
Horstmann365
Antworten
1
Aufrufe
1.057
jogimuc
J
Jansenwilson
Antworten
1
Aufrufe
687
Mazuch
Mazuch
Zurück
Oben Unten