2016-07-20 37 views
1

Mein WifiBroadcastReceiver hört nach aktualisierten WLAN-Zuständen. Wenn ich einen Knopf auf meiner MainActivity drücke, wird ein WIFI-Scan von WifiManager ausgeführt, der die onReceive Methode in meinem WifiBroadcastReceiver auslöst.
Wenn ich die action von der Intent bekomme, ist es richtig, es gibt WifiManager.SCAN_RESULTS_AVAILABLE_ACTION zurück. Wenn ich das action erhalte, rufe ich WifiManager.getScanResults() an, das einen List von ScanResult Objekte zurückgibt.WifiManager gibt eine leere Liste auf meinem Xperia Z3 + zurück, aber funktioniert wie erwartet auf meinem Galaxy S4

Auf dem S4 sind die Ergebnisse wie erwartet, eine Liste der verfügbaren WIFI-Netzwerke. Jedoch auf der Z3 +, während es eine List<ScanResult> zurückgibt, ist die Liste leer.

Was könnte das verursachen?

Der S4 läuft Android 5.0.1.
Das Z3 + läuft unter Android 6.0.1.

+0

Leider haben die Entwickler von Android-Handys haben alle „das Gleiche“ nicht in Billigere Telefone und Telefone von verschiedenen Herstellern im Allgemeinen funktionieren nicht immer wie die Super-Duper-Telefone, die Entwickler oft in ihren Taschen haben. –

+0

Ja, ich hatte Angst, dass dies die Art von Antwort war, die ich bekommen würde. Aber das scheint ein Unterschied auf einem ziemlich niedrigen Niveau zu sein, ich hätte gehofft, dass diese Art der Sache Standard wäre, für etwas, das so allgegenwärtig ist wie das Scannen von Wifi-Netzwerken. –

+1

Offensichtlich * sehr * sorgfältig für Fehler-Logs jeglicher Art, aber, "Ja, es ist doof, was die Unterschiede sind, manchmal." –

Antwort

0

Ab Android 6.0 wurde das Berechtigungsverhalten zur Laufzeit geändert. Das bedeutet, dass wir Berechtigungen anders behandeln müssen. hier

diese Antwort Siehe: „die gleiche Art und Weise“

https://stackoverflow.com/a/32151901/571875