After upgrading to Android version 6.0 Bluetooth Low Energy (BLE) scanning will only work if Location services are enabled on the device. See here for reference: Bluetooth L
You can use BluetoothAdapter.startDiscovery()
.
It will scan for both Bluetooth Smart and classic Bluetooth devices, but location services do not need to be enabled.
(You still need ACCESS_COARSE_LOCATION
permissions on Android 6.)
You can call BluetoothDevice.getType on found devices to filter for Bluetooth Smart / Low Energy devices.