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?
fuente
Respuestas:
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.
fuente
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.
fuente