Dlaczego muszę włączyć usługi lokalizacyjne, aby sparować z urządzeniem Bluetooth?


16

Ilekroć próbuję podłączyć Samsung Galaxy S6 z Androidem 6.0.1 do urządzenia obsługującego Bluetooth, mówi mi o włączeniu „usług lokalizacyjnych”.

Kiedy narzekałem na to, sprzedawca oprogramowania odpowiedział: „Najnowsze aktualizacje interfejsu API Google Android wpływające na technologię LE LE Bluetooth wymagają przyznania uprawnień do lokalizacji w celu korzystania z aplikacji”.

Nie widzę potrzeby tego.

Ta dyskusja mówi o tym. Dokumentacja techniczna mówi, że aplikacje muszą mieć określone uprawnienia , a nie, aby usługi lokalizacyjne były aktywne.

Aby uzyskać dostęp do identyfikatorów sprzętowych pobliskich urządzeń zewnętrznych za pomocą skanów Bluetooth i Wi-Fi, Twoja aplikacja musi teraz mieć uprawnienia ACCESS_FINE_LOCATION lub ACCESS_COARSE_LOCATION

Pytanie : Czy to oznacza, że ​​oświadczenie dostawcy oprogramowania jest nieprawidłowe?


System zezwoleń jest zdecydowanie całkowicie zaniepokojony restrukturyzacją MM (wyjaśnienia mówią, że miały na myśli „sygnały nawigacyjne Bluetooth”, które można wykorzystać do zlokalizowania ciebie). W moim rozumieniu wasze wątpliwości są uzasadnione, a oświadczenie dostawcy nieprawidłowe: Aplikacje potrzebują pozwolenia , aby uzyskać dostęp do Bluetooth. Ale jeśli potrzebują usługi lokalizacyjnej, aby znaleźć sprzęt („skręć w prawo na drugim złączu lutowniczym, podaj tranzystor na bramce 3…”), byłbym zaskoczony. Wątpię, czy w tym celu należy włączyć usługi lokalizacyjne, ale nie mam urządzenia MM do weryfikacji.
Izzy

Odpowiedzi:


6

Rozumiem przez Bluetooth, że aplikacje korzystające z Bluetooth mają bezpośredni dostęp do adresu MAC urządzenia w celu parowania. Zakładam to dla tej odpowiedzi.

Jeśli potrafisz odczytać adresy MAC nadajników WiFi lub Bluetooth, możesz zlokalizować urządzenie. Tak działa lokalizacja WiFi / Bluetooth; nasłuchujesz adresów MAC nadajników i przeglądasz je w gigantycznej globalnej bazie danych.

Dlatego każda aplikacja korzystająca z Bluetooth i połączenia danych teoretycznie może zlokalizować twoje urządzenie. Nie jestem pewien, czy jest to praktycznie możliwe; Bluetooth nie ma takiego samego zasięgu i półtrwałej infrastruktury punktu dostępu jak WiFi.

Wymagając od usług lokalizacyjnych dostępu do Bluetooth, upewniasz się, że użytkownik rozumie, że informacje o jego lokalizacji mogą wyciekać podczas korzystania z Bluetooth. W wersjach Androida wcześniejszych niż Marshmallow użytkownik mógł korzystać z Bluetooth bez włączonych usług lokalizacyjnych, ale informacje o lokalizacji mogły wyciekać. W tych starszych wersjach można również uruchomić skanowanie Wi-Fi w celu znalezienia adresów MAC bez włączonych usług lokalizacyjnych, co ponownie oznacza, że ​​informacje o Twojej lokalizacji mogą wyciekać. Wymaganie, aby usługi lokalizacyjne mogły korzystać z Bluetooth, polega na tym, aby osoba wyłączająca lokalizację zachowała prywatność swojej lokalizacji.

Chciałbym scharakteryzować ten problem jako problem projektowy, a nie błąd. Błąd można przypuszczalnie naprawić, ale nie jest dla mnie jasne, że możesz w ogóle korzystać z Bluetooth bez potencjalnie wycieku informacji o lokalizacji. Bluetooth został stworzony, zanim ktokolwiek rozważył usługi lokalizacyjne WiFi i Bluetooth.


2

Sprzedawca ma rację, musisz włączyć usługi lokalizacyjne, aby skanować w poszukiwaniu urządzeń WiFi lub Bluetooth LE.

Szczegółowe informacje można znaleźć w błędzie # 185370 . Google powiedział, że naprawili go w „przyszłej wersji”, ale zgodnie z komentarzami do błędu, nadal nie jest naprawiony w Androidzie 7.


Edycja: wcześniej powiedziałem, że usługi lokalizacyjne są wymagane tylko wtedy, gdy aplikacja rozpoczynająca skanowanie działa w tle. Kod źródłowy wskazuje, że jest to prawdą tylko wtedy, gdy celem interfejsu API jest <Android M.


Jeśli to błąd Androida, dlaczego sprzedawca miałby rację? Powinni byli odpowiedzieć: „To błąd Androida”
GUI Junkie

Czy można podłączyć urządzenie do bluetooth poza aplikacją?
GUI Junkie

Zapytałeś, czy oświadczenie dostawcy jest nieprawidłowe. To nie jest niepoprawne, musisz przyznać lokalizację aplikacji uprawnienia do . Ponadto z powodu błędu musisz włączyć usługi lokalizacyjne .
jomo
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.