Android Bluetooth Scan para dispositivos clásicos y BTLE

La documentación de Android indica:

Note: You can only scan for Bluetooth LE devices or scan for Classic Bluetooth devices, as described in Bluetooth. You cannot scan for both Bluetooth LE and classic devices at the same time. 

Sin embargo, estoy notando que llamar a mBtAdapter.startDiscovery (); Está devolviendo clásicos y btle dispositivos. ¿Alguien sabe lo que es correcto aquí?

A mi entender lo que significa la documentación es que no puedes tener un startLeScan () y un startDiscovery () ejecutándose al mismo tiempo. La razón puede ser que sólo hay un objeto BluetoothAdapter (el objeto que representa el hardware Bluetooth local), por lo que no puede realizar dos operaciones diferentes que usen BluetoothAdapter al mismo tiempo (si alguien sabe algo diferente en cuanto a cómo funciona en el Fondo, háganoslo saber)

StartLeScan () -> escanea sólo para dispositivos BLE
StartDiscovery () -> descubre todos los dispositivos Bluetooth, también sólo escanea durante 12 segundos y esto no se puede cambiar (tener una lectura a través de la descripción del método)

Nota: Después de realizar una exploración de consulta startDiscovery () cuando se encuentra un dispositivo BT, puede obtener el tipo de dispositivo para identificar qué es cada dispositivo. Por ejemplo:

  int deviceType = device.getType(); if(deviceType == BluetoothDevice.DEVICE_TYPE_CLASSIC) { } else if(deviceType == BluetoothDevice.DEVICE_TYPE_LE) { } else if(deviceType == BluetoothDevice.DEVICE_TYPE_DUAL) { } else if(deviceType == BluetoothDevice.DEVICE_TYPE_UNKNOWN) { } 
  • Soporte Bluetooth Smart (4.0) / GATT en Android 4.0?
  • Bluetooth LE Error 133 activa la desconexión
  • Android Bluetooth Baja energía: characteristic.getPermissions () devuelve 0?
  • Android, ¿Cómo puedo hacer que el dispositivo BLE esté conectado a un dispositivo (vinculado)
  • Android Bluetooth status 133 en onCharacteristicwrite
  • Error de pelusa al obtener el adaptador Bluetooth
  • Android 4.3: BLE: Comportamiento de filtrado de startLeScan ()
  • Reacción a la publicidad dirigida BLE (ADV_DIRECT_IND) en Android
  • Descubrimiento del servicio BLE de Android (BluetoothGatt # discoverServices ()) y Low Energy vs BR / EDR
  • Vinculación mediante programación al dispositivo BLE en Android
  • OnServicesDiscovered es 129 y se conecta inestable para BLE en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.