Nach dem Upgrade auf Android Version 6.0 funktioniert der Bluetooth Low Energy (BLE) -Scan nur, wenn die Standortdienste auf dem Gerät aktiviert sind. Siehe hier als Referenz: Bluetooth Low Energy startScan on Android 6.0 does not find devicesDer Standort muss für Bluetooth Low Energy Scanning unter Android 6.0 aktiviert sein.
Grundsätzlich müssen Sie die Berechtigung für die App sowie für das Telefon aktiviert haben. Ist das ein Fehler? Ist es möglich, ohne aktivierte Standortdienste zu scannen? Ich möchte keinen Standort für alle meine Apps haben müssen. Ich bin in Ordnung mit der Grob- und Fein Lage Berechtigungen im Manifest
EDIT ich nicht zu erwähnen, dass ich die startScan()
Methode in BluetoothLeScanner
in API 21 vorgesehen bin mit, dass diese Methode erforderlich. Ich möchte nur nicht, dass die Nutzer meiner App die Standortdienste auf ihrem Gerät (GPS usw.) aktivieren müssen, um meine App zu verwenden.
Zuvor wurde die Methode startScan()
ausgeführt und Ergebnisse mit den auf dem Telefon deaktivierten Standortdiensten zurückgegeben. Auf Marshmallow wurde dieselbe Anwendung jedoch "gescannt", aber im Hintergrund fehlgeschlagen, und es wurden keine Ergebnisse zurückgegeben, wenn die Standortdienste auf dem Telefon nicht aktiviert waren und sich Kurs-/Feinstandortberechtigungen noch im Manifest befanden.
Welche Geräte verwenden Sie? Ich hatte das gleiche Problem mit einer Moto G 2nd Generation. Moto G 1. Generation und Nexus 6 laufen einwandfrei mit genau dem gleichen Code, ohne die Ortungsdienste explizit zu aktivieren. – shadowhorst
Ich habe es auf jedem Gerät mit Marshmallow - Nexus 5X, Samsung S6, Samsung S7, LG G4 –