Todas las aplicaciones que necesiten el Bluetooth para funcionar en Android no sólo acceden al sistema de conexión inalámbrica, también requieren de un permiso controvertido: el de localización. Y no es porque lo necesiten o porque tengan intención de conseguir esos datos: Google obliga a solicitar la ubicación para utilizar el Bluetooth.
Aplicaciones como la de Radar Covid, la que se emplea en España para trazar los contactos por Coronavirus, han despertado cierta polémica porque, a pesar de que el Gobierno asegura que utilizarla no implica riesgos de privacidad ya que no almacena datos de contacto ni ubicaciones, la app no funciona correctamente si desactivamos la localización. Pese a las lógicas dudas que despierta, este comportamiento no es propio de la aplicación en sí, sino del sistema: Android no ofrece acceso al Bluetooth si la petición no lleva aparejada el permiso de localización.
El permiso de Bluetooth va unido a la localización
Cuando instalamos Radar Covid nos pide una serie de permisos, aunque en este caso la lista es bastante escueta en comparación con otras apps. Entre ellos se encuentra el acceso a la red, la obligación de que la app esté siempre funcionando en primer plano y el teléfono no entre en suspensión (necesario para hacer dicho rastreo) y el permiso para acceder al adaptador Bluetooth. No hay ninguna mención de acceso a la ubicación. Sin embargo, cuando desactivamos la ubicación, aparece un mensaje que nos dice que Radar Covid no funciona correctamente porque hemos desactivado la localización. No es ningún tipo de trampa de la app, es como funciona el permiso de Bluetooth en Android.
No hay manera de esquivar la obligación ya que viene implícita en el sistema: todo desarrollador que incluya funcionalidades Bluetooth en su app tiene que pedir el permiso de localización precisa para que su software pueda rastrear a otros dispositivos Bluetooth, conectarse a ellos o transferir datos. Esta obligación viene marcada por la API de Bluetooth, la herramienta que gestiona a nivel de sistema las peticiones a esta conectividad inalámbrica de corto alcance.
Google introdujo la obligación de solicitar el permiso de acceso preciso a la ubicación del dispositivo (ACCESS_FINE_LOCATION) con Android 6. Por tanto, todas las aplicaciones desarrolladas para que funcionen con esa versión de Android y superior requieren acceder a la localización si quieren utilizar la conectividad Bluetooth, siempre de manera precisa. Como excepción, si los desarrolladores hacen compatible su app sólo con Android 9 y superior pueden solicitar otro permiso que no requiere de la ubicación precisa, sólo aproximada (ACCESS_COARSE_LOCATION). Esto no es lo habitual ya que, si el desarrollador crease su app para que funcionara sobre Android 9 y superior, perdería la opción de llegar a más de la mitad de los posibles usuarios.
Pero ¿por qué se necesita la localización si se supone que una app sólo utiliza el Bluetooth para descubrir dispositivos compatibles y emparejarse a ellos? La explicación la da la propia Google en su página de desarrolladores:
"Tu app necesita este permiso porque es posible usar un escaneo de Bluetooth para reunir información sobre la ubicación del usuario. Esta información puede obtenerse desde el dispositivo del usuario o desde balizas Bluetooth en determinados lugares, como tiendas y áreas de tránsito".
Dado que el Bluetooth permite localizar al móvil de manera precisa (las balizas de un centro comercial pueden saber con precisión dónde están los móviles conectados, por ejemplo), toda app que vaya a utilizar la conexión debe declararle al usuario el riesgo de que puede localizarle con escasos metros de error. El permiso funciona más como alerta que como verdadera declaración de intenciones.