Perché devo attivare i servizi di localizzazione per associarmi a un dispositivo Bluetooth?


16

Ogni volta che provo a connettere il mio Samsung Galaxy S6 con Android 6.0.1 a un dispositivo abilitato Bluetooth, mi dice di abilitare i "servizi di localizzazione".

Quando mi sono lamentato di questo, il fornitore del software ha risposto: "I recenti aggiornamenti dell'API di Google Android che incidono sulla tecnologia Bluetooth LE richiedono l'autorizzazione della posizione per poter utilizzare l'app".

Non riesco a vedere la necessità di questo.

Questa discussione ne parla. Il riferimento tecnico indica che le app devono disporre di determinate autorizzazioni , non che i servizi di localizzazione siano attivi.

Per accedere agli identificatori hardware dei dispositivi esterni vicini tramite scansioni Bluetooth e Wi-Fi, l'app deve ora disporre delle autorizzazioni ACCESS_FINE_LOCATION o ACCESS_COARSE_LOCATION

Domanda : ciò significa che l'affermazione del fornitore del software non è corretta?


Il sistema dei permessi è decisamente migliorato con la ristrutturazione di MM (le spiegazioni dicono che avevano in mente "beacon Bluetooth" che potrebbero essere usati per localizzarti). Per quanto ne so, il tuo dubbio è giustificato e l'affermazione del fornitore non è corretta: le app hanno bisogno dell'autorizzazione per accedere a Bluetooth. Ma se hanno bisogno di un servizio di localizzazione per trovare l'hardware ("girare a destra sul secondo giunto di saldatura, passare il transistor al gate 3 ..."), sarei sorpreso. Dubito fortemente che i servizi di localizzazione debbano essere abilitati per questo, ma non ho alcun dispositivo MM da verificare.
Izzy

Risposte:


6

La mia comprensione di Bluetooth è che le applicazioni che utilizzano Bluetooth hanno accesso diretto all'indirizzo MAC del dispositivo ai fini dell'associazione. Lo assumerò per questa risposta.

Se riesci a leggere gli indirizzi MAC dei trasmettitori WiFi o Bluetooth, puoi individuare un dispositivo. Ecco come funziona la posizione WiFi / Bluetooth; ascolti gli indirizzi MAC dei trasmettitori e li cerchi in un gigantesco database globale.

Pertanto, qualsiasi applicazione che utilizza Bluetooth e una connessione dati è teoricamente in grado di localizzare il dispositivo. Non sono sicuro che ciò sia praticamente possibile; Il Bluetooth non ha la stessa portata e l'infrastruttura del punto di accesso semipermanente del WiFi.

Richiedendo ai servizi di localizzazione di accedere al Bluetooth, si garantisce che l'utente capisca che le informazioni sulla propria posizione potrebbero perdere quando usano il Bluetooth. Nelle versioni di Android precedenti a Marshmallow, l'utente poteva utilizzare il Bluetooth senza i servizi di localizzazione abilitati, ma le informazioni sulla localizzazione potevano perdere. In queste versioni precedenti, è anche possibile eseguire scansioni WiFi per trovare indirizzi MAC senza servizi di localizzazione abilitati, il che significa che le informazioni sulla posizione potrebbero perdere. Il requisito per consentire ai servizi di localizzazione di utilizzare il Bluetooth è di garantire che qualcuno che disabilita la posizione mantenga la propria posizione privata.

Definirei questo problema come un problema di progettazione e non di bug. Un bug è presumibilmente risolvibile, ma non è chiaro per me che puoi usare il Bluetooth senza potenzialmente perdere informazioni sulla posizione. Il Bluetooth è stato creato prima che qualcuno considerasse i servizi di localizzazione WiFi e Bluetooth.


2

Il fornitore è corretto, è necessario abilitare i servizi di localizzazione alla ricerca di dispositivi WiFi o Bluetooth LE.

Vedi bug # 185370 per i dettagli. Google ha affermato di averlo corretto in una "versione futura" ma, secondo i commenti sul bug, non è stato ancora risolto in Android 7.


Modifica: in precedenza ho detto che i servizi di localizzazione sono richiesti solo quando l'app che avvia la scansione è in esecuzione in background. Il codice sorgente indica che questo è vero solo se l'API-Target è <Android M.


Se si tratta di un bug Android, perché il venditore dovrebbe avere ragione? Avrebbero dovuto rispondere: "È un bug Android"
GUI Junkie,

È possibile collegare il dispositivo al bluetooth all'esterno dell'app?
GUI Junkie,

Hai chiesto se la dichiarazione del fornitore non è corretta. Non è errato, devi concedere le autorizzazioni di posizione all'app. Inoltre, a causa del bug, è necessario abilitare i servizi di localizzazione .
jomo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.