3. Le Serveur sur le PC
Dans ce projet, nous avons implémenté deux classes:
-Server.java
-XmmsShellHelper.java.
1.Server.java
Server.java a été créée afin d'établir la connexion via bluetooth coté ordinateur. Pour
cela, on utilise rfcomm car il est simple d'utilisation et qu'il envoi des messages non
bornés.
Cette classe permet à un client (téléphone) de se connecter et de se déconnecter autant de
fois qu'il le souhaite. Elle utilise l'objet provenant de la classe XmmsShellHelper.java.
C’est dans cette partie que le serveur va répondre aux sollicitations du téléphone en
envoyant à celui-ci les données qu’ils demandent.
2.XmmsShellHelper.java
XmmsShellHelper.java permet de gérer le logiciel Xmms. Cette classe utilise le logiciel
Xmmsctrl qui permet de diriger Xmms à partir d'un shell. Comme par exemple
« Xmmsctrl play » qui va lancer le « play » sur xmms. Par ce même procédé, nous avons
implémenté les fonctions de contrôle du volume ainsi que « play, stop, pause ,next,
prev».
4. Le Client sur le téléphone
En ce qui concerne la partie sur le téléphone , nous n'avons qu'une seule et unique classe
qui se charge de tout , elle va donc devoir gérer la connexion avec le serveur , les
communications , la création de l'interface graphique ainsi que tout le cote événementiel
(quand on clique sur un bouton par exemple).
Pour gérer tout cela en une seule classe nous avons procéder par étape:
Tout d'abord , nous créons l'interface graphique et tous les éléments dont on aura besoin
de (StringItem , TextBox ....) , pour certains nous leur ajoutons un listener qui permettra
, de définir les comportements lors d'un évènements.
Ensuite grâce a la fonction connect(String url) qui utilise un StreamConnection , on crée
la connexion avec le serveur proposant le service xmms-bluetooth ( a l'heure actuelle ,
nous codons l'adresse a utiliser , via le protocole btspp , en dur , alors qu'on pourrait faire
cela dynamiquement).
Une fois la connexion établie , il faut pouvoir communiquer de façon bi-directionnelle
avec le serveur , nous avons donc mis en place deux flux de stream grâce a un Input et
un Output stream , on pourra donc recevoir des informations et envoyer des directives
grâce a des tableaux de bytes.
C'est justement les actions causées par les conséquences d'un clique , l'envoi de données
ou/et la réception ; par exemple en cliquant sur vol+ on augmentera la valeur du volume