Après la mise à niveau vers la version Android 6.0, l'analyse Bluetooth Low Energy (BLE) ne fonctionnera que si les services de localisation sont activés sur l'appareil. Voir ici pour référence: Bluetooth Low Energy startScan sur Android 6.0 ne trouve pas les appareils
Fondamentalement, vous devez activer l'autorisation pour l'application ainsi que pour le téléphone. Est-ce un bug? Est-il possible de scanner sans que les services de localisation soient réellement activés? Je ne veux pas avoir de localisation pour toutes mes applications.
EDIT
J'ai omis de mentionner que j'utilise la startScan()
méthode BluetoothLeScanner
fournie dans l'API 21. Je suis d'accord avec le cours et les autorisations de localisation fines dans le manifeste que cette méthode nécessite. Je ne veux tout simplement pas que les utilisateurs de mon application doivent activer les services de localisation sur leur appareil (GPS, etc.) pour utiliser mon application.
Auparavant, la startScan()
méthode s'exécutait et renvoyait des résultats avec les services de localisation désactivés sur le téléphone. Sur Marshmallow, cependant, la même application «analysait» mais échouait silencieusement et ne renvoyait aucun résultat lorsque les services de localisation n'étaient pas activés sur le téléphone et que les autorisations de cours / emplacement précis étaient toujours dans le manifeste.