|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : juillet 2010 Messages : 34 ![]() |
Bonjour à tous,
Dans un premier temps, j'ai lu le tuto disponible sur le bluetooth avec Android. J'ai également lu quelques postes sur le sujet bluetooth mais aucun ne se rapproche de mon problème. Voici mon projet: établir une communication bluetooth entre un équipement bluetooth et mon smartphone. A la base l'équipement bluetooth communique avec un PC sur lequel un hyperterminal peut s'ouvrir pour communiquer avec l'équipement bluetooth. Je souhaite accéder à cet équipement en question via mon smartphone et non plus par PC. Je débute dans le développement Android mais j'ai quelques notions de JAVA. J'ai rédigé un début de code pour détecter/activer le bluetooth sur le smartphone. un code basic pour le moment. J'essai simplement de détecter mon équipement dans un premier temps. Par la suite j'essayerai de communiquer avec. Voici le code : Code :
Malheureusement, je ne vois pas comment bien détecter les modules à proximités et les afficher pour ensuite s'y connecter. Si quelqu'un pouvait m'éclairer ça serait super. un grand merci d'avance GGelec |
||
|
|
00
|
|
|
#2 |
![]() ![]() |
Bonjour,
Tu as un super exemple sur le sujet : http://developer.android.com/resourc...toothChat.html et ici : http://sberfini.developpez.com/tutor...luetooth/#LIII Tu trouveras toutes les réponses à tes questions dans cet exemple |
|
|
00
|
|
|
#3 | |||
|
Invité de passage
![]() Inscription : juillet 2010 Messages : 34 ![]() |
Citation:
j'ai déjà regardé ces exemples. Je vais essayer de m'en inspirer. J'essai malgré tout de trouver. Je ne suis pas sur d'avoir compris le principe de client serveur. voici mon code si tu pouvais y jeter un oeil histoire de voir si je ne fais pas de bêtes fautes: Code :
|
|||
|
|
00
|
|
|
#4 | |||||
![]() ![]() |
Bonjour,
Citation:
Après essaye tout d'abord de faire un inquiry pour récupérer les bluetooth devices possibles : Code :
Citation:
http://sberfini.developpez.com/tutor...oid/bluetooth/ Citation:
|
|||||
|
|
00
|
|
|
#5 | |||
|
Invité de passage
![]() Inscription : juillet 2010 Messages : 34 ![]() |
Citation:
j'ai recommencé mon application. J'avais oublié pas mal de choses en faite. Maintenant, je parviens à détecter mon équipement et à récupérer son adresse. Je regarde toujours l'exemple de google (bluetoothChat). J'ai d'ailleurs du mal a voir les étapes pour établir une connexion vers un périphérique détecté... Si quelqu'un pouvait juste me citer les étapes, ça serait super. (créer un socket puis un rfcomm, ....) Je suis un peu perdu à ce niveau là. J'avais également une question au niveau de la notion client/server. Dans mon cas, où je souhaite établir une connexion de mon téléphone à mon module bluetooth, je suis client ou server ? Je n'ai pas bien saisi le concept. Je pense que c'est client mais je ne suis pas sur. merci |
|||
|
|
00
|
|
|
#6 | |||||
![]() ![]() |
Citation:
http://sberfini.developpez.com/tutor...oid/bluetooth/ Pour le client il faut faire un Code :
Après sur le BluetoothSocket (tmp) tu fais un connect(). Et te voilà connecté. Citation:
Citation:
|
|||||
|
|
00
|
|
|
#7 | ||||||||
|
Invité de passage
![]() Inscription : juillet 2010 Messages : 34 ![]() |
Citation:
J'ai regardé exactement l'établissement de la connection dans l'exemple de google. Je ne pense pas avoir fait d'erreur ce coup ci, je ne parviens pas à me connecter au module. Voici mon code : j'ai ajouter un bouton pour lancer la connection, j'appel la méthode suivante: Code :
Code :
Je vais encore vérifier mais il me semble que je fais la même chose que dans l'exemple bluetoothchat. Voici le logcat : Citation:
|
||||||||
|
|
00
|
|
|
#8 | |||
![]() ![]() |
Déjà en premier
Passe le device en paramètre de ta fonction, et surtout ne mets pas en majuscules ta variable lorsque celle ci n'est pas en final. Après il faut que tu arrête ton discovery avant ton connect si tu veux le lancer pendant que le discovery est en cours. L'adapter sur lequel tu lances l'inquiry : Code :
BluetoothAdapter mAdapter = BluetoothAdapter.getDefaultAdapter(); Code :
Citation:
|
|||
|
|
00
|
|
|
#9 | |||||
|
Invité de passage
![]() Inscription : juillet 2010 Messages : 34 ![]() |
Citation:
Code :
Par sécurité, j'attend également un autre message debug dans le logcat qui me signal que le discovery est fini, mais j'ai toujours la même erreur. |
|||||
|
|
00
|
|
|
#10 | ||
![]() ![]() |
Citation:
Citation:
http://hi-android.info/src/android/b...cket.java.html |
||
|
|
00
|
|
|
#11 | ||||||
|
Invité de passage
![]() Inscription : juillet 2010 Messages : 34 ![]() |
Citation:
Code :
Citation:
J'ai aussi activé la fonction discoverable mais je doute que ce soit liée: Code :
|
||||||
|
|
00
|
|
|
#12 |
|
Membre actif
![]() christian Développeur indépendant Inscription : août 2004 Messages : 251 ![]() |
l 'appel à connect est bloquant...
donc il faut le mettre soit dans un thread, soit dans un asynctask.. |
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : juillet 2010 Messages : 34 ![]() |
|
|
|
00
|
|
|
#14 | ||
![]() ![]() |
Citation:
Citation:
Essaye de te connecter à un autre appareil . |
||
|
|
00
|
|
|
#15 |
|
Membre actif
![]() christian Développeur indépendant Inscription : août 2004 Messages : 251 ![]() |
un truc qui m'a fait m'arracher les cheveux. l'uuid.
il semblerait que certains appareils n'acceptent qu'une certaine UUID. ![]() pour la connexion vers mon scanner en mode client, j'ai utilisé celle ci, Code :
final UUID uuid= UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); |
|
|
00
|
|
|
#16 |
|
Invité de passage
![]() Inscription : juillet 2010 Messages : 34 ![]() |
|
|
|
00
|
|
|
#17 | |
|
Invité de passage
![]() Inscription : juillet 2010 Messages : 34 ![]() |
Citation:
J'ai associé mon smartphone avec mon équipement bluetooth (j'ai entré le code etc dans les settings) ensuite j'ai lancé l'application blueterm et j'ai réussi à me connecter au module Bluetooth et envoyer des messages. Donc le soucis ne viens pas de mon module bluetooth ou autre déjà. En général, quand il y a un code de pour pairer les équipements, Android le gère tout seul (affiche une fenêtre pour entrer le code) ou il faut aussi le gérer soit même? |
|
|
|
00
|
|
|
#18 |
|
Membre actif
![]() christian Développeur indépendant Inscription : août 2004 Messages : 251 ![]() |
oui, en fait, tu veux te connecter à quel type d'equipement.??
un peripherique de lecture, de stockage, une oreillette.? un autoradio.? tout depend de ce que tu veux, mais l'uuid dans mon cas etait necessaire parceque le type d'appareil (en l'occurence un scanner de code barre) se comporte, si je me souviens bien, ) comme un lecteur sur port serie. j'ai essayé pas mal de truc, avant de tomber sur un article qui decrivait le probleme, et la solution. utiliser l'uuid quand tu cree ton socket, avant de la connecter, Code :
socket = EASYBT.createRfcommSocketToServiceRecord(MY_UUID); Code :
final UUID MY-UUID= UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); mais la encore, difference, je me connecte en client . mais de toute facon, rien n'a marche tant que je me suis obstiné à tout laisser dans un seul thread. il faut les dissocier! sinon, ca plante, et finalement, c'est logique. on peut pas mettre au meme niveau de priorite, une ouverture de socket et la gestion de l'interface utilisateur. |
|
|
00
|
|
|
#19 | |
|
Invité de passage
![]() Inscription : juillet 2010 Messages : 34 ![]() |
Citation:
merci pour ta réponse. Effectivement ce matin j'y ai repensé à cette UUID car dans plusieurs exemple que j'ai trouvé, je n'ai pas fais attention, mais c'est cette UUID qui est utilisé. Je pensais que c'était l'adresse de mon smartphone que je devais placer mais non... Je me connecte à un module bluetooth relier via un USART à un PIC18F. J'essai juste de réaliser une petite application pour contrôler une carte électronique embarqué. Donc la gestion derrière est fonction de ce que je veux en faire. Je devais juste pouvoir établir correctement la liaison. Je vais essayer tout de suite. Merci pour ton feedback. EDIT : Okay ça fonctionne. J'arrive à me connecter. ![]() Je vais pouvoir me concentrer sur la réalisation des threads comme on me la conseillé. Un grand merci. Je vais devoir mtn aussi me concentrer sur la lecture / écriture. à bientôt donc |
|
|
|
00
|
|
|
#20 | ||
|
Invité de passage
![]() Inscription : juillet 2010 Messages : 34 ![]() |
Citation:
J'ai refais mon application bluetooth avec des threads. Je rencontre un soucis au niveau de onDestroy. Quand mon application parviens à se connecter à ma carte, quand je quitte je n'ai aucun problème. Par contre lorsque je ne détecte pas de carte et que je quitte j'ai plusieurs exception : Citation:
Je me rend compte que si je ne détecte rien et que je quitte l'application, j'ai des exceptions comme ci dessus. Mon thread qui active le bluetooth et envoi un signal à l'activité principal (via un handler) n'est jamais tué j'ai simplement un run() sans boucle. Une fois qu'il a exécuté son code, le thread est signalé comme TERMINATED. Je ne sais pas trop quel est le soucis. Quelqu'un à une idée? EDiT : J'ai trouvé mon erreur
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com