2015-12-21 1 views
3

Nous développons une application Android qui peut se connecter à plusieurs capteurs de fréquence cardiaque simultanément via Bluetooth Low Energy.Android: Limite des connexions simultanées BLE

Nous avons une implémentation qui fonctionne plutôt bien, donc le code n'est pas le problème. Ce qui nous rend fous est la limitation des connexions BLE parallèles qui semble être différente d'un appareil à l'autre.

Nous avons quelques appareils de test ici: Motorola MotoE et MotoG, un Samsung Galaxy Tab A et un HTC Nexus 9. Tous fonctionnent sous Android 5 ou 6, versions originales du fournisseur. Aucun d'entre eux n'est capable de se connecter simultanément à plus de 7 capteurs HR BLE.

Ensuite, j'ai testé avec mon Samsung Galaxy S4 privé, qui est enracinée et a installé Cyanogen CM12. Avec cet appareil, je peux facilement connecter à 12 capteurs HR simultanément, ce qui est le nombre que nous voulons atteindre avec notre application.

J'ai testé cette fois avec notre propre implémentation de l'application et le panneau de commande principal Nordic Semiconductor nRF qui je pense est une très bonne application BLE générique: https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp&hl=de

Lorsque je tente de connecter l'application à un 7 BLE capteur sur l'un de nos appareils, la sortie ADB imprime le message d'erreur suivant: E/BluetoothLeBasicConn: Erreur de changement d'état de connexion: 133

J'ai fait quelques recherches sur ce problème, mais la plupart des résultats trouvés étaient assez vieux. Certaines personnes ont dit que la limitation provenait du chipset Bluetooth lui-même, d'autres ont dit qu'il s'agissait d'une limitation logicielle via Android.

Pourriez-vous m'aider à savoir, d'où vient la limitation?

Si c'est le chipset, alors je voudrais savoir, quels dispositifs nous devrions utiliser pour soutenir autant de connexions parallèles que possible. Malheureusement, il est très difficile de savoir quel chipset Bluetooth est intégré dans les différents appareils. Presque aucune des spécifications matérielles que j'ai trouvées ne dit quoi que ce soit à ce sujet.

Si la limitation vient du côté logiciel, pouvons-nous le changer d'une manière ou d'une autre sans enraciner les téléphones ou installer un système d'exploitation moded?

Merci beaucoup!

Répondre

7

Si cela vous intéresse toujours. La limite est de BTA_GATTC_CONN_MAX (définitivement dans Android) qui est fixé à:

  • 4 sur Android 4.3 et
  • 7 sur Android 4.4

Il est par ailleurs aussi une limite la quantité de caractéristiques pour lesquelles vous pouvez activer les notifications. (BTA_GATTC_NOTIF_REG_MAX) qui est:

  • 4 sur Android 4.3,
  • 7 sur Android 4.4 et
  • 15 sur Android 5.0
+0

Merci pour votre réponse. Ceci est triste, car nous ne pouvons rien faire :( – ReactiveMax

+0

@Infinite Où puis-je vérifier ces valeurs? –

+0

Ces limites sont-elles par application ou maximum pour l'ensemble du système d'exploitation (partagé entre toutes les applications en cours d'exécution)? – Travis