web-dev-qa-db-fra.com

Connexion Bluetooth multiple

Je souhaite connecter 3 appareils via Bluetooth (Mon Droid doit se connecter à 2 appareils Bluetooth). J'ai connecté mon Droid à 1 appareil à l'aide du chat Bluetooth. Comment dois-je le modifier pour plusieurs appareils Bluetooth? Pourrais-tu m'aider s'il te plait?

57
vic

Je cherchais un moyen de connecter 4 appareils avec Bluetooth et j'ai trouvé ce qui suit.

http://groups.google.com/group/Android-developers/browse_thread/thread/69d7810f6ef9bb7d

Je ne suis pas sûr que c'est ce que tu veux.

Toutefois, pour connecter plus de 2 appareils à l'aide de Bluetooth, vous devez créer un UUID différent pour chaque appareil que vous souhaitez connecter.

Suivez le lien pour voir des exemples de code et une meilleure explication.

22
YasuDevil

Vous pouvez essayer ma lib pour plusieurs connexions Bluetooth:

http://arissa34.github.io/Android-Multi-Bluetooth-Library/

8
Rami

Avez-vous examiné la classe BluetoothAdapter Android?). Vous avez configuré un périphérique en tant que serveur et un autre en tant que client. Il est peut-être possible moi-même) pour connecter plusieurs clients au serveur.

J'ai réussi à connecter un périphérique audio BlueTooth à un téléphone alors qu'il disposait également de cette connexion BluetoothAdapter à un autre téléphone, mais je n'ai pas essayé avec trois téléphones. Au moins, cela me dit que la radio Bluetooth peut tolérer plusieurs connexions simultanées :)

6
Aaron C

Oui, en théorie, votre appareil peut se connecter simultanément à 7 autres appareils Bluetooth simultanément. Une telle connexion s'appelle un piconet. Un schéma de connexion plus complexe est le scatternet.

La raison pour laquelle il est limité à 7 autres périphériques est que le champ de bits attribué à LT_ADDR dans le protocole L2CAP n’est que de 3.

4
Konjengbam

Deux haut-parleurs Bluetooth UE Boom peuvent former une chaîne stéréo, ce qui signifie que le téléphone peut diffuser simultanément sur deux appareils Bluetooth. La raison en est que Bluetooth 4.0 peut prendre en charge jusqu'à deux liens SCO (Synchronous Connection Oriented) sur le même piconet, et A2DP est basé sur un lien SCO.

Votre demande "chat Bluetooth" est basée sur le profil SPP, et SPP est basé sur le protocole RFCOMM. Heureusement, même Bluetooth 2.1 peut prendre en charge plusieurs canaux RFCOMM. Vous pouvez donc disposer de plusieurs connexions Bluetooth pour discuter les unes avec les autres.

3
Phil

S'il vous plaît jeter un oeil à la Android documentation .

À l'aide des API Bluetooth, une application Android peut effectuer les opérations suivantes:

  • Rechercher d'autres appareils Bluetooth
  • Interrogez l'adaptateur Bluetooth local pour les périphériques Bluetooth couplés.
  • Établir des canaux RFCOMM
  • Connectez-vous à d'autres périphériques via la découverte de services
  • Transférer des données vers et depuis d'autres appareils
  • Gérer plusieurs connexions
1

Vous pouvez jeter un coup d'oeil ici (ce n'est pas une solution mais l'idée est ici)

exemple multi client avec l'exemple de chat Google

ce que vous devez changer/faire:

  • serveur séparé et logique client dans différentes classes

  • pour le client, vous avez besoin d'un objet pour gérer un thread de connexion et sur un thread connecté

  • pour le serveur, vous avez besoin d'un objet pour gérer un fil d'écoute par client et un fil connecté par client.

  • le serveur ouvre un thread d'écoute sur chaque UUID (un par client)

  • chaque client essaie de se connecter à chaque uuid (l'uuid déjà pris va échouer la connexion => premier arrivé, premier servi)

Des questions ?

1
An-droid

Pas tout à fait vrai - jetez un coup d'œil au sommaire des spécifications

Protocole de contrôle et d'adaptation de liaison logique (L2CAP)

L2CAP est utilisé dans la pile de protocoles Bluetooth. Il transmet les paquets à l'interface HCI (Host Controller Interface) ou sur un système sans hôte, directement au lien Link Manager/ACL. Les fonctions de L2CAP incluent:

  • Multiplexer des données entre différents protocoles de couche supérieure.
  • Segmentation et réassemblage des paquets.
  • Gestion de la transmission unidirectionnelle des données de multidiffusion vers un groupe d’autres périphériques Bluetooth.
  • Gestion de la qualité de service (QoS) pour les protocoles de couche supérieure.

L2CAP est utilisé pour communiquer via le lien Host ACL. Sa connexion est établie après la configuration de la liaison ACL.

1
Shawn Anderson