Bir Bluetooth cihazla eşleştirmek için neden konum hizmetlerini açmam gerekiyor?


16

Samsung Galaxy S6 cihazımı Android 6.0.1 ile Bluetooth özellikli bir cihaza bağlamaya çalıştığımda, bana "konum servislerini" etkinleştirmem gerektiğini söylüyor.

Bu konuda şikayet ettiğimde, yazılım satıcısı şunları söyledi: "Bluetooth LE teknolojisini etkileyen Google Android API'sında yapılan son güncellemeler, uygulamayı kullanmak için konum izinlerinin verilmesini gerektiriyor."

Buna olan ihtiyacı göremiyorum.

Bu tartışma bundan bahsediyor. Teknik başvuru uygulamalar belirli olması gerekir diyor izinleri konum hizmetleri etkin olması değil.

Yakındaki harici cihazların donanım tanımlayıcılarına Bluetooth ve Wi-Fi taramaları yoluyla erişmek için, uygulamanızın artık ACCESS_FINE_LOCATION veya ACCESS_COARSE_LOCATION izinlerine sahip olması gerekir

Soru : Bu, yazılım satıcısının ifadesinin yanlış olduğu anlamına mı geliyor?


İzin sistemi kesinlikle MM yeniden yapılandırmasıyla tamamen kaplıdır (açıklamalar, sizi bulmak için kullanılabilecek "Bluetooth işaretlerini" akıllarında bulunduğunu söylüyor). Anladığım kadarıyla, şüpheniz haklı ve satıcının beyanı yanlış: Bluetooth'a erişmek için uygulamaların izne ihtiyacı var . Ancak donanımı bulmak için bir konum servisine ihtiyaç duyarlarsa ("ikinci lehim ekleminde sağa dönün, transistörü kapı 3'ten geçirin ..."), şaşırırdım. Bunun için konum hizmetlerinin etkinleştirilmesi gerektiğinden şüpheliyim, ancak doğrulayacak MM cihazım yok.
Izzy

Yanıtlar:


6

Bluetooth anlayışım, Bluetooth kullanan uygulamaların eşleştirme amacıyla cihazın MAC adresine doğrudan erişebilmesidir. Bunu bu cevap için kabul edeceğim.

WiFi veya Bluetooth vericilerinin MAC adreslerini okuyabiliyorsanız, bir cihazı bulabilirsiniz. WiFi / Bluetooth konumu böyle çalışır; vericilerin MAC adreslerini dinlersiniz ve bunları dev bir küresel veritabanında ararsınız.

Bu nedenle, Bluetooth ve veri bağlantısı kullanan herhangi bir uygulama teorik olarak cihazınızı bulabilir. Bunun pratik olarak mümkün olduğundan emin değilim; Bluetooth, WiFi ile aynı menzil ve yarı kalıcı erişim noktası altyapısına sahip değildir.

Konum hizmetlerinin Bluetooth'a erişmesini zorunlu kılarak, kullanıcının Bluetooth kullandığında konum bilgilerinin sızabileceğini anladığından emin olursunuz. Marshmallow'dan önceki Android sürümlerinde, kullanıcı konum hizmetleri etkinleştirilmeden Bluetooth'u kullanabilir, ancak konum bilgileri sızabilir. Bu eski sürümlerde, konum hizmetleri etkinleştirilmeden MAC adreslerini bulmak için WiFi taramaları da çalıştırabilirsiniz, bu da konum bilgilerinizin sızabileceği anlamına gelir. Konum hizmetlerinin Bluetooth kullanmasına izin verme gereksinimi, konumu devre dışı bırakan bir kişinin konumlarını gizli tutmasını sağlamakla ilgilidir.

Bu sorunu bir hata değil bir tasarım sorunu olarak nitelendiririm. Bir hata muhtemelen düzeltilebilir, ancak potansiyel olarak konum bilgilerini sızdırmadan Bluetooth'u kullanabileceğiniz açık değil. Bluetooth, WiFi ve Bluetooth konum hizmetleri düşünülmeden önce oluşturuldu.


2

Satıcı doğrudur, WiFi veya Bluetooth LE cihazlarını taramak için konum servislerini etkinleştirmeniz gerekir.

Ayrıntılar için hata # 185370'e bakın. Google, bunu bir 'gelecek sürümde' düzelttiklerini söyledi ancak hatayla ilgili yorumlara göre, Android 7'de hala sabit değil.


Düzenleme: Önceden konum servislerinin sadece taramayı başlatan Uygulama arka planda çalıştığında gerekli olduğunu söyledim. Kaynak kodu, bunun yalnızca API-Target <Android M ise doğru olduğunu gösterir.


Bu bir Android hatasıysa, satıcı neden haklı olsun ki?
GUI Junkie

Cihazı Uygulama dışında Bluetooth'a bağlamak mümkün mü?
GUI Junkie

Satıcı beyanının yanlış olup olmadığını sordunuz. Yanlış değil , uygulamaya konum izinleri vermeniz gerekiyor . Ayrıca, hata nedeniyle konum hizmetlerini etkinleştirmeniz gerekir .
jomo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.