Setelah meningkatkan ke Android versi 6.0, pemindaian Bluetooth Hemat Energi (BLE) hanya akan bekerja jika layanan Lokasi diaktifkan pada perangkat. Lihat di sini untuk referensi: Bluetooth Low Energy startScan di Android 6.0 tidak menemukan perangkat
Pada dasarnya, Anda harus mengaktifkan izin untuk aplikasi dan juga untuk telepon. Apakah ini bug? Apakah mungkin untuk memindai tanpa layanan lokasi benar-benar diaktifkan? Saya tidak ingin memiliki lokasi untuk semua aplikasi saya.
EDIT
Saya gagal menyebutkan bahwa saya menggunakan startScan()
metode yang BluetoothLeScanner
disediakan dalam API 21. Saya setuju dengan izin kursus dan lokasi yang bagus dalam manifes yang diperlukan metode ini. Saya hanya tidak ingin pengguna aplikasi saya harus mengaktifkan layanan lokasi di perangkat mereka (GPS, dll.) Untuk menggunakan aplikasi saya.
Sebelumnya, startScan()
metode ini akan berjalan dan menampilkan hasil dengan layanan Lokasi dinonaktifkan di ponsel. Namun, di Marshmallow, aplikasi yang sama akan "memindai" tetapi diam-diam gagal dan tidak mengembalikan hasil saat layanan lokasi tidak diaktifkan di ponsel dan izin lokasi kursus / bagus masih ada dalam manifes.