Comment connecter par programmation 2 appareils Android avec Bluetooth?
Je développe une application qui devrait relier 2 appareils Android via Bluetooth automatiquement. Disons qu'ils sont déjà couplés. Est-il possible de réaliser cela?
source d'informationauteur Miky
Vous devez vous connecter pour publier un commentaire.
Il est bien sûr possible. Je vais faire un petit tutoriel de la documentation:
Commencer avec la BluetoothAdapter - il est de votre gestionnaire Bluetooth.
Si
bluetoothAdapter
est nulle, cela signifie que cet appareil Android ne prend pas en charge Bluetooth (Il n'a pas de Bluetooth de radio. Si je pense que c'est rare de rencontrer ces appareils...)Ensuite, assurez-vous que Bluetooth est activé:
Si ce n'est pas à nous de commencer l'activité, qui demande à l'utilisateur de l'activer.
Disons que l'utilisateur n'a activer (je suppose que vous devriez vérifier si il l'a fait, de le faire dans votre
onActivityResult
méthode). Nous pouvons requête pour les appareils appariés:Ensuite une boucle au-dessus d'eux:
for(BluetoothDevice device : pairedDevices)
et trouver celui que vous souhaitez connecter.Une fois que vous avez trouvé un appareil, créer un socket pour se connecter:
YOUR_UUID est un UUID objet contenant un ID spécifique de votre application. Lire à ce sujet ici.
Maintenant, essayez de vous connecter (Le périphérique que vous essayez de vous connecter doivent avoir un socket créé avec le même UUID sur le mode d'écoute):
connect() blocs votre fil jusqu'à ce qu'une connexion est établie, ou qu'une erreur se produit, une exception sera levée dans ce cas. Donc, vous devriez appeler
connect
sur un thread séparé.Et il y! Vous êtes connecté à un autre appareil. Maintenant obtenir l'entrée et les flux de sortie:
et vous pouvez commencer à envoyer/recevoir des données. Gardez à l'esprit que les deux actions (envoi et réception) sont blocage de sorte que vous devez appeler à partir de threads séparés.
Lire plus à ce sujet, et savoir comment créer le serveur (Ici, nous avons créé un client) dans le La documentation Bluetooth.