Android BLE ACTION_ACL_CONNECTED no se llama para dispositivos emparejados

Estoy usando Android 4.4. Tengo 2 dispositivos Bluetooth, uno de la vieja escuela de Bluetooth y un BLE. Ambos son idénticos funcionalmente en cuanto a los datos que transmiten. Ambos tienen un solo botón que conecta y transmite datos cuando se presiona.

Tengo permisos de Bluetooth activado y registrado un BroadcastReceiver en mi manifiesto, así

... <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> ... <receiver android:name=".BluetoothBroadcastReceiver"> <intent-filter> <action android:name="android.bluetooth.device.action.ACL_CONNECTED" /> <action android:name="android.bluetooth.device.action.ACL_DISCONNECTED" /> <action android:name="android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED" /> </intent-filter> </receiver> 

Para probar, simplemente estoy registrando las llamadas a onReceive en BroadcastReceiver

 @Override public void onReceive(Context context, Intent intent) { Log.d(TAG, intent.getAction()); } 

Aquí está el problema: ambos dispositivos se emparejan con el teléfono, pero sólo el dispositivo Bluetooth de la vieja escuela genera las transmisiones ACTION_ACL_CONNECTED / ACTION_ACL_DISCONNECTED cuando se presiona el botón del dispositivo Bluetooth. No ocurre nada cuando el dispositivo BLE intenta conectarse y transmitir.

Puedo conectar y recibir correctamente los datos del dispositivo BLE si estoy buscando activamente conexiones BLE usando

 mBluetoothAdapter.startLeScan(mLeScanCallback); 

¿Tengo que buscar explícitamente dispositivos BLE para permitirles conectarse? ¿Los dispositivos BLE generan emisiones ACTION_ACL_CONNECTED / ACTION_ACL_DISCONNECTED cuando no explora explícitamente dispositivos BLE? ¿O deberían conectarse automáticamente si están emparejados con el teléfono?

ACTION_ACL_CONNECTED/ACTION_ACL_DISCONNECTED transmisiones ACTION_ACL_CONNECTED/ACTION_ACL_DISCONNECTED solo son para BR / EDR (Classic Bluetooth), no para BLE.

Para BLE, debe trabajar con las API y devoluciones de llamada proporcionadas por las versiones más recientes de Android.

  • Cómo identificar Eddystone URL y uid?
  • ¿Cómo trabajar con BLE Android 4.3 cómo escribir características?
  • ¿Cómo obtener respuestas más rápidas con AltBeacon?
  • Android Cómo leer las propiedades de BLE Readable Writable Notifiable GATT Características
  • Android Marshmallow ScanSetting
  • Medición de la frecuencia cardíaca usando Xiaomi MiBand y BLE
  • Leer paquete de publicidad en Android
  • Kontakt Beacons: Resultados incoherentes y poco fiables al determinar la distancia de la baliza
  • Diferencia entre close () y disconnect () en Android Bluetooth API?
  • Vinculación mediante programación al dispositivo BLE en Android
  • Conexión Bluetooth con Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.