Dopo l'aggiornamento ad Android versione 6.0, la scansione Bluetooth Low Energy (BLE) funzionerà solo se i servizi di localizzazione sono abilitati sul dispositivo. Vedere qui per riferimento: Bluetooth Low Energy startScan su Android 6.0 non trova i dispositivi
Fondamentalmente, devi avere l'autorizzazione abilitata per l'app e per il telefono. è un insetto? È possibile eseguire la scansione senza che i servizi di localizzazione siano effettivamente abilitati? Non voglio avere una posizione per tutte le mie app.
EDIT
Non ho menzionato che sto usando il startScan()
metodo inBluetoothLeScanner
fornito nell'API 21. Sono d'accordo con il corso e le autorizzazioni di localizzazione fine nel manifest che questo metodo richiede. Semplicemente non voglio che gli utenti della mia app debbano abilitare i servizi di localizzazione sul proprio dispositivo (GPS, ecc.) Per utilizzare la mia app.
In precedenza, il startScan()
metodo veniva eseguito e restituiva risultati con i servizi di localizzazione disabilitati sul telefono. Su Marshmallow, tuttavia, la stessa applicazione eseguiva la "scansione" ma non funzionava silenziosamente e non restituiva risultati quando i servizi di localizzazione non erano abilitati sul telefono e le autorizzazioni di percorso / posizione precisa erano ancora nel manifest.