it-swarm.com.de

startScan () in WifiManager ist in Android P nicht mehr verfügbar

So erhalten Sie beispielsweise alle 3 Sekunden ein Scan-Ergebnis aus dem WLAN, ohne mWifimanager.startScan();

Google sagt: 

startScan()This method was deprecated in API level P. The ability for apps to trigger scan requests will be removed in a future release.

Beachten Sie, dass für diese API-Ebene List<ScanResult> results = mWifiManager.getScanResults(); verwendet wird, ohne startScan aufzurufen. Die Liste enthält die WLAN-APs, wird jedoch sehr langsam aktualisiert

Update zum 12. Januar 2019: https://issuetracker.google.com/issues/112688545

18
EAK TEAM

Google hat nun die Einschränkungen für die startScan () - Funktion in Android P dokumentiert:

"Wir begrenzen die Anzahl der von Apps angeforderten Scans weiter, um die Netzwerkleistung und die Akkulaufzeit zu verbessern. 

Die Verwendung von WifiManager.startScan () ist beschränkt auf: - Jede Vordergrund-App ist auf 4 Scans alle 2 Minuten beschränkt - Alle Hintergrund-Apps zusammen sind auf einen Scan alle 30 Minuten beschränkt.

Quelle: https://issuetracker.google.com/issues/79906367

Bearbeiten 8-Aug-2018: Informationen wurden auch hier hinzugefügt: https://developer.Android.com/guide/topics/connectivity/wifi-scan

9
marko.tm

Ich denke, in der API-Ebene P planen sie, startScan () in eine andere Klasse (WifiScanner) zu verschieben, mit einigen wichtigen Unterschieden. 

Siehe: https://Android.googlesource.com/platform/frameworks/base/+/Android-p-preview-1/wifi/Java/Android/net/wifi/WifiScanner.Java

Wenn es eine alternative Lösung dafür gibt, würde ich es auch gerne hören. 

Für den Moment kann ich startScan () verwenden, bis offizielle Dokumente veröffentlicht werden.

7
Nino Gonzales

startScan () ist eigentlich ziemlich fehlerhaft für P, als ich Google Issue 79906367 angesprochen habe.

Ich glaube nicht, dass WifiScanner auch der Ersatz ist, da dies als SystemApi gekennzeichnet ist, was keinen Zugriff für Apps bedeutet ...

Hoffentlich hören wir es bald, da RTT immer noch bedeutet, dass Sie nach APs suchen müssen, die 802.11mc unterstützen, und zwar mit ScanResult is80211mcResponder , die Sie vor dem RTT-Ranging auf dem AP überprüfen.

5
meavydev

Die Methode StartScan () ist veraltet in Android P und das neue RTT-Protokoll aus dem 802.11mc-Standard muss mit Trilaterationsalgorithmen verwendet werden. https://Android-developers.googleblog.com/ 2018/03/Vorschau-Android-p.html

Die X, Y-Position des AP sollte für eine genaue Positionierung bekannt sein, und der AP sollte die Feinzeitmessung nach 802.11mc unterstützen. Intel® Wireless-AC 9260 unterstützt 802.11mc, und mehrere APs unterstützen ab sofort den 802.11mc-Standard.

Einige Beispiele:

2

Es scheint, dass Googles die Absicht haben könnte, Entwickler dazu zu zwingen, WifiRttManager stattdessen für Indoor-Standorte zu verwenden [1]. Oder verlassen Sie sich auf die üblichen Google Play-Ortungsdienste, die in einigen Anwendungsfällen eine Option darstellen, aber definitiv nicht alle. Es ist für den durchschnittlichen Anwendungsfall optimiert. Kein Anwendungsfall ist der durchschnittliche Anwendungsfall.

Leider erfordert WifiRttManager bei der Berechnung des Standorts 802.11mc für die WLAN-Zugangspunkte. Sie müssen jedoch keine Verbindung zu diesen Punkten herstellen. Nahezu 0 Router haben heute diesen Standard. [2] [3] [4] Mit 3 Zugangspunkten können Sie Positionen mit einer Genauigkeit von 1 bis 2 Metern ermitteln.

Wer weiß, ob sie diese Funktionalität auch einschränken. Es gibt einfach keine Entschuldigung, Benutzern und Entwicklern diese Wahl zu nehmen. Widerlich.

Es scheint also, dass es zumindest ein dunkles Zeitalter für Innenräume geben wird. Möglicherweise können Sie dieses Problem umgehen, indem Sie Geräte, mit denen Sie verbunden sind, anpingen.

[1] https://developer.Android.com/reference/Android/net/wifi/rtt/WifiRttManager

[2] https://github.com/Plinzen/Android-rttmanager-sample

Zusätzliche Lektüre

[3] https://en.wikipedia.org/wiki/IEEE_802.11mc

[4] https://fit-iot.com/web/wifi-indoor-positioning/

1
heliam1

Von WifiManager # EXTRA_RESULTS_UPDATED

Hinweis: Apps, die über die Berechtigung Android.Manifest.permission.NETWORK_SETTINGS verfügen, sind von der Scanbeschränkung ausgenommen.

Hinweis: Hierbei handelt es sich um eine Systemberechtigung, die von normalen Apps nicht verwendet werden kann, ohne die App zu rooten und an den 'privilegierten' Speicherort zu verschieben oder in ein benutzerdefiniertes ROM einbetten zu lassen.

1
Sevenate

Ich denke, Google plant, die Anwendung vom Scannen von WLAN einzuschränken. 

Diese Methode wurde in API-Ebene 28 nicht mehr unterstützt. Die Möglichkeit für Apps, Trigger-Scan-Anforderungen werden in einer zukünftigen Version entfernt . Überprüfe die Dokumentation hier.

1
Manmohan Soni