¿Por qué necesito activar los servicios de ubicación para emparejar con un dispositivo Bluetooth?

16

Cada vez que intento conectar mi Samsung Galaxy S6 con Android 6.0.1 a un dispositivo con Bluetooth, me dice que habilite los "servicios de ubicación".

Cuando me quejé de esto, el proveedor de software respondió: "Las actualizaciones recientes de la API de Google Android que afectan a la tecnología Bluetooth LE requieren que se otorguen permisos de ubicación para poder usar la aplicación".

No veo la necesidad de esto.

Esta discusión habla de esto. La referencia técnica dice que las aplicaciones deben tener ciertos permisos , no que los servicios de ubicación estén activos.

Para acceder a los identificadores de hardware de dispositivos externos cercanos a través de escaneos Bluetooth y Wi-Fi, su aplicación ahora debe tener los permisos ACCESS_FINE_LOCATION o ACCESS_COARSE_LOCATION

Pregunta : ¿Esto significa que la declaración del proveedor de software es incorrecta?

GUI Junkie
fuente
El sistema de permisos definitivamente está completamente enredado con la reestructuración de MM (las explicaciones dicen que tenían en mente "balizas Bluetooth" que podrían usarse para ubicarlo). Según tengo entendido, su duda está justificada y la declaración del proveedor es incorrecta: las aplicaciones necesitan el permiso para acceder a Bluetooth. Pero si necesitan un servicio de ubicación para encontrar el hardware ("gire a la derecha en la segunda unión de soldadura, pase el transistor en la puerta 3 ..."), me sorprendería. Dudo mucho que los servicios de ubicación deban estar habilitados para eso, pero no tengo ningún dispositivo MM para verificar.
Izzy

Respuestas:

6

Entiendo que Bluetooth es que las aplicaciones que usan Bluetooth tienen acceso directo a la dirección MAC del dispositivo con el propósito de emparejar. Asumiré esto por esta respuesta.

Si puede leer las direcciones MAC de los transmisores WiFi o Bluetooth, puede localizar un dispositivo. Así es como funciona la ubicación WiFi / Bluetooth; escuchas las direcciones MAC de los transmisores y las buscas en una gigantesca base de datos global.

Por lo tanto, cualquier aplicación que use Bluetooth y una conexión de datos es teóricamente capaz de localizar su dispositivo. No estoy seguro de que esto sea prácticamente posible; Bluetooth no tiene el mismo alcance e infraestructura de punto de acceso semipermanente que WiFi.

Al requerir que los servicios de ubicación accedan a Bluetooth, se asegura de que el usuario entienda que su información de ubicación puede filtrarse cuando usa Bluetooth. En las versiones de Android anteriores a Marshmallow, el usuario podría usar Bluetooth sin los servicios de ubicación habilitados, pero la información de ubicación podría filtrarse. En estas versiones anteriores, también podría ejecutar escaneos WiFi para encontrar direcciones MAC sin los servicios de ubicación habilitados, lo que nuevamente significaba que su información de ubicación podría filtrarse. El requisito de permitir que los servicios de ubicación usen Bluetooth se trata de garantizar que alguien que deshabilita la ubicación mantenga su ubicación privada.

Caracterizaría este problema como un problema de diseño y no como un error. Presumiblemente, un error se puede corregir, pero no está claro para mí que pueda usar Bluetooth sin filtrar información de ubicación. Bluetooth se creó antes de que alguien considerara los servicios de ubicación WiFi y Bluetooth.

Mattm
fuente
2

El proveedor es correcto, debe habilitar los servicios de ubicación para buscar dispositivos WiFi o Bluetooth LE.

Ver error # 185370 para más detalles. Google dijo que lo arreglaron en una 'versión futura', pero de acuerdo con los comentarios sobre el error, todavía no está arreglado en Android 7.


Editar: anteriormente dije que los servicios de ubicación solo son necesarios cuando la aplicación que inicia el análisis se ejecuta en segundo plano. El código fuente indica que esto solo es cierto si el API-Target es <Android M.

jomo
fuente
Si se trata de un error de Android, ¿por qué el vendedor tiene razón? Deberían haber respondido: "Es un error de Android"
GUI Junkie
¿Es posible vincular el dispositivo a bluetooth fuera de la aplicación?
GUI Junkie
Usted preguntó si la declaración del proveedor es incorrecta. No es incorrecto, debe otorgar permisos de ubicación a la aplicación. Además, debido al error, debe habilitar los servicios de ubicación .
jomo