Wenn ich versuche, mein Samsung Galaxy S6 mit Android 6.0.1 mit einem Bluetooth-fähigen Gerät zu verbinden, werde ich aufgefordert, "Ortungsdienste" zu aktivieren.
Als ich mich darüber beschwerte, antwortete der Softwareanbieter: "Für kürzlich durchgeführte Aktualisierungen der Google Android-API, die die Bluetooth LE-Technologie betreffen, müssen Standortberechtigungen erteilt werden, damit die App verwendet werden kann."
Ich sehe keine Notwendigkeit dafür.
Diese Diskussion spricht darüber. Die technische Referenz besagt, dass die Apps bestimmte Berechtigungen haben müssen , nicht, dass Ortungsdienste aktiv sind.
Um über Bluetooth und Wi-Fi-Scans auf die Hardware-IDs von externen Geräten in der Nähe zugreifen zu können, muss Ihre App jetzt über die Berechtigungen ACCESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION verfügen
Frage : Bedeutet dies, dass die Aussage des Softwareherstellers falsch ist?
quelle
Antworten:
Mein Verständnis von Bluetooth ist, dass Anwendungen, die Bluetooth verwenden, direkten Zugriff auf die Geräte-MAC-Adresse haben, um sie zu koppeln. Ich werde dies für diese Antwort annehmen.
Wenn Sie die MAC-Adressen von WLAN- oder Bluetooth-Sendern lesen können, können Sie ein Gerät suchen. So funktioniert die WiFi / Bluetooth-Ortung; Sie suchen nach MAC-Adressen von Sendern und suchen diese in einer riesigen globalen Datenbank.
Daher ist theoretisch jede Anwendung, die Bluetooth und eine Datenverbindung verwendet, in der Lage, Ihr Gerät zu lokalisieren. Ich bin mir nicht sicher, ob dies praktisch möglich ist. Bluetooth verfügt nicht über dieselbe Reichweite und semipermanente Zugangspunktinfrastruktur wie WLAN.
Indem Sie festlegen, dass Ortungsdienste auf Bluetooth zugreifen müssen, stellen Sie sicher, dass der Benutzer versteht, dass bei der Verwendung von Bluetooth möglicherweise Standortinformationen verloren gehen. In Android-Versionen vor Marshmallow konnte der Benutzer Bluetooth verwenden, ohne dass Ortungsdienste aktiviert waren, aber Standortinformationen konnten lecken. In diesen älteren Versionen konnten Sie auch WiFi-Scans durchführen, um MAC-Adressen ohne aktivierte Ortungsdienste zu finden, was wiederum bedeutete, dass Ihre Ortungsinformationen lecken könnten. Damit Ortungsdienste Bluetooth verwenden können, muss sichergestellt werden, dass Personen, die den Ort deaktivieren, ihren Standort privat halten.
Ich würde dieses Problem als Designproblem und nicht als Fehler bezeichnen. Ein Fehler ist vermutlich behebbar, aber mir ist nicht klar, ob Sie Bluetooth überhaupt verwenden können, ohne potenziell Standortinformationen preiszugeben. Bluetooth wurde erstellt, bevor WLAN- und Bluetooth-Ortungsdienste in Betracht gezogen wurden.
quelle
Ist der Hersteller korrekt, müssen Sie die Ortungsdienste aktivieren, um nach WLAN- oder Bluetooth LE-Geräten zu suchen.
Siehe Fehler # 185370 für Details. Google sagte, dass sie es in einer "zukünftigen Version" behoben haben, aber laut Kommentaren zum Fehler ist es in Android 7 immer noch nicht behoben.
Bearbeiten: Ich sagte zuvor, Ortungsdienste sind nur erforderlich, wenn die App, die den Scan startet, im Hintergrund ausgeführt wird. Der Quellcode gibt an, dass dies nur dann zutrifft, wenn das API-Ziel <Android M ist.
quelle