Nach dem Upgrade auf Android Version 6.0 funktioniert das Bluetooth Low Energy (BLE) -Scannen nur, wenn die Ortungsdienste auf dem Gerät aktiviert sind. Siehe hier als Referenz: Bluetooth Low Energy startScan unter Android 6.0 findet keine Geräte
Grundsätzlich muss die Berechtigung sowohl für die App als auch für das Telefon aktiviert sein. Ist das ein Fehler? Ist es möglich zu scannen, ohne dass die Ortungsdienste tatsächlich aktiviert sind? Ich möchte nicht für alle meine Apps einen Standort haben müssen.
BEARBEITEN
Ich habe nicht erwähnt, dass ich die in API 21 bereitgestellte startScan()
Methode verwende BluetoothLeScanner
. Ich bin mit den für diese Methode erforderlichen Kurs- und Speicherortberechtigungen im Manifest einverstanden. Ich möchte nur nicht, dass die Benutzer meiner App Ortungsdienste auf ihrem Gerät (GPS usw.) aktivieren müssen, um meine App verwenden zu können.
Zuvor wurde die startScan()
Methode ausgeführt und gab Ergebnisse zurück , wenn die Ortungsdienste auf dem Telefon deaktiviert waren. Auf Marshmallow "scannte" dieselbe Anwendung jedoch, schlug jedoch stillschweigend fehl und gab keine Ergebnisse zurück, wenn die Ortungsdienste auf dem Telefon nicht aktiviert waren und die Kurs- / Feinstandortberechtigungen noch im Manifest enthalten waren.