Blog

December 2018

Warum braucht SmartRace unter Android Zugriff auf Standortbestimmung/Ortungsdienste?

Diese Frage kommt immer mal wieder auf und führt sogar zu schlechten Bewertungen. Ich war mir anfangs selbst nicht sicher, weshalb das so ist, habe aber nun mal ein wenig recherchiert. SmartRace ist keine native App, sondern basiert auf Apache Cordova. Für dieses Framework existiert eine Vielzahl an Plugins, die eine Verbindung zwischen dem generischen Teil der App und der nativen Umgebung der jeweiligen Plattform (iOS und Android) herstellen, um mit der Hardware des jeweiligen Gerätes interagieren zu können – zum Beispiel mit Bluetooth. So verwende ich für die Verbindung mit der Control Unit ein quelloffenes Plugin namens „BLE Central„, das sich um die Kommunikation auf Hardwareebene kümmert. Dieses Plugin wird auch von den anderen beiden Apps verwendet, die für Carrera Digital verfügbar sind (Carrera Race App und Open Lap). Der Entwickler des Plugins erklärt den notwendigen Zugriff auf die Ortungsdienste so (übersetzt aus dem Englischen, Original ist hier nachzulesen):

Seit Android-SDK* >= 23 (6.0) sind zum Scannen per Bluetooth Low Energy zusätzliche Berechtigungen nötig. Die Berechtigung für die Ortungsdaten (ACCESS_COARSE_LOCATION) ist nötig, da Bluetooth Beacons zur Standortbestimmung des Nutzers verwendet werden können.

Bluetooth Beacons sind kleine Bluetooth-Sender, die für verschiedene Zwecke verwendet werden können. Es gibt zum Beispiel Beacons, die an den Haustürschlüssel gehängt werden können, um ihn per Handy aufzuspüren, wenn er verlegt wurde. Im Grunde ist es nun so, dass Android auf jeden Fall voraussetzt, dass der Nutzer die Berechtigung zur Standortbestimmung erteilt, auch wenn die App (z.B. SmartRace) überhaupt nichts mit den Standortdaten tut. Somit benötigt auch SmartRace diese Berechtigung, obwohl keinerlei Standortdaten erhoben, gespeichert oder sonst wie verarbeitet werden (was ich garantieren kann). Es gibt auch keine Möglichkeit, diese Berechtigung seitens SmartRace nicht anzufordern – es ist eine Sache, die das Betriebssystem entscheidet (in diesem Fall Android). Unter iOS ist diese Berechtigung übrigens nicht notwendig.

Der ein oder andere wird sich allerdings jetzt fragen, weshalb die Carrera App eine solche Berechtigung dann nicht ebenfalls erfordert. Die Antwort darauf ist sehr einfach: die App wurde seit über eineinhalb Jahren (zuletzt im Juni 2017!) nicht mehr aktualisiert und läuft somit noch unter einer älteren Version des Android-SDK*. Sollte Carrera die App irgendwann nochmal aktualisieren, wird auch diese App die Berechtigung benötigen.

*  SDK bedeutet Software Development Kit und ist eine Abkürzung für eine Sammlung von Programmierwerkzeugen bzw. -Bibliotheken.