Dopo l'aggiornamento alla versione Android 6.0, la scansione Bluetooth Low Energy (BLE) funziona solo se i servizi di localizzazione sono abilitati sul dispositivo. Vedere qui per riferimento: Bluetooth Low Energy startScan on Android 6.0 does not find devicesLa posizione deve essere abilitata per la scansione Bluetooth a bassa energia su Android 6.0
Fondamentalmente, è necessario disporre dell'autorizzazione per l'app e per il telefono. è un insetto? È possibile eseguire la scansione senza servizi di localizzazione effettivamente abilitati? Non voglio avere la posizione per tutte le mie app.
EDIT non sono riuscito a dire che sto usando il metodo startScan()
in BluetoothLeScanner
previsto API 21. Io sono a posto con il corso e le autorizzazioni posizione strategica nel manifesto che questo metodo richiedono. Semplicemente non voglio che gli utenti della mia app debbano abilitare i servizi di localizzazione sul loro dispositivo (GPS, ecc.) Per utilizzare la mia app.
In precedenza, il metodo startScan()
veniva eseguito e restituito i risultati con i servizi di localizzazione disabilitati sul telefono. Su Marshmallow, tuttavia, la stessa applicazione eseguiva una "scansione", ma non funzionava in modo silenzioso e non restituiva risultati quando i servizi di localizzazione non erano abilitati sul telefono e le autorizzazioni di percorso/fine posizione erano ancora nel manifest.
Quali dispositivi stai utilizzando? Ho incontrato lo stesso problema con un Moto G 2nd Generation. Moto G 1st Generation e Nexus 6 funzionano bene con lo stesso codice esatto senza abilitare esplicitamente i servizi di localizzazione. – shadowhorst
L'ho notato su qualsiasi dispositivo che esegue Marshmallow - Nexus 5X, Samsung S6, Samsung S7, LG G4 –