Code d'association bluetooth obex

elothe Messages postés 5 Date d'inscription mardi 6 mars 2007 Statut Membre Dernière intervention 7 novembre 2008 - 28 août 2008 à 15:18
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 29 août 2008 à 12:26
Bonjour,

Je suis débutant en Java et j'ai pour projet de réaliser une appli permettant l'envoi de fichiers (image, mp3) d'un ordianteur (ubuntu) vers un périphérique bluetooth.

J'arrive aujourd'hui à envoyer ces fichier avec obex mais je voudrai pouvoir renseigner le code d'association bluetooth dans le code java car je dois actuellement réduire l'application pour le renseigner dans le popup du system.

Savez vous quel(s) paramètre(s) ou classe(s) est nécessaire pour pouvoir définir ce code.

ps: j'utilise avetana comme librairie

merci beaucoup.

7 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
28 août 2008 à 16:55
Salut,

perso je n'ai jamais utilisé 'avetana', cependant regarde si tu n'a pas une classe UUID (Universal Unique Identifier) ou un truc du genre. un peu comme ICI

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
elothe Messages postés 5 Date d'inscription mardi 6 mars 2007 Statut Membre Dernière intervention 7 novembre 2008
29 août 2008 à 09:51
Merci beaucoup pour ta réponse mais mon appli obex est en mode client ce qui ne me permet pas de mettre cet uuid.

Voici mon code pour que tu puisses te faire une idée.

import java.io.File;?import java.io.FileInputStream;?import java.io.IOException;?import java.io.OutputStream;?import javax.microedition.io.*;?import javax.obex.*;?import javax.activation.MimetypesFileTypeMap;
 
public class BluetoothPush implements java.io.Serializable {

    public static void main(String[] args) throws IOException, InterruptedException {
     String serverURL = "btgoep://addressBT:channel";?       
File file=new File("C:/image.jpg");?        String type = new

MimetypesFileTypeMap().getContentType(file);
          ?       
if ((args != null) && (args.length > 0)) {?           
serverURL = args[0];?        }?       

if (serverURL == null) {?             
System.out.println("OBEX service not found");?              return;?            }?        ? 
System.out.println("Connecting to " + serverURL);?        ?   
ClientSession clientSession = (ClientSession)
Connector.open(serverURL);?   
System.out.println("Etape 2 ");?   
HeaderSet hsConnectReply = clientSession.connect(null);?       
if (hsConnectReply.getResponseCode() !=
ResponseCodes.OBEX_HTTP_OK) {?           
System.out.println("Failed to connect");?           
return;?        }?   

System.out.println("Etape 3 ");

        HeaderSet hsOperation = clientSession.createHeaderSet();?
        hsOperation.setHeader(HeaderSet.NAME, "Collines.jpg");?       
hsOperation.setHeader(HeaderSet.TYPE, type);?   
     hsOperation.setHeader(HeaderSet.LENGTH, new Long(file.length()));?        //Définition de la push opération?       

Operation putOperation = clientSession.put(hsOperation);

        int taille (int) file.length(); //on récupere la taille du fichier?        byte[] b new byte[taille]; //on cré un tableau de byte de la taille du fichier?
        FileInputStream in = new FileInputStream(file);?    
    in.read(b);//on place le flux in du fichier dans le tableau ?       // Envoi de l'objet ?       
OutputStream os = putOperation.openOutputStream();?   
     os.write(b);?   
     os.close();?       
putOperation.close();?    
    clientSession.disconnect(null);? 
    clientSession.close();?   
}
?}
L'idée serait de renseigner le code dans le code java et non plus dans windows.

Merci beaucoup.
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
29 août 2008 à 10:17
Salut,

ce poste n'est pas une réponse mais juste une re indentation de ton code :

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import javax.microedition.io.*;
import javax.obex.*;
import javax.activation.MimetypesFileTypeMap;

public class BluetoothPush implements java.io.Serializable {
   
    public static void main(String[] args) throws IOException,
            InterruptedException {
        String serverURL = "btgoep://addressBT:channel";
        File file = new File("C:/image.jpg");
        String type = new MimetypesFileTypeMap().getContentType(file);
        if ((args != null) && (args.length > 0)) {
            serverURL = args[0];
            if (serverURL == null) {
                System.out.println("OBEX service not found");
                return;
            }
            System.out.println("Connecting to " + serverURL);
            ClientSession clientSession = (ClientSession) Connector
                    .open(serverURL);
            System.out.println("Etape 2 ");
            HeaderSet hsConnectReply = clientSession.connect(null);
            if (hsConnectReply.getResponseCode() != ResponseCodes.OBEX_HTTP_OK) {
                System.out.println("Failed to connect");
                return;
            }
            System.out.println("Etape 3 ");
            HeaderSet hsOperation = clientSession.createHeaderSet();
            hsOperation.setHeader(HeaderSet.NAME, "Collines.jpg");
            hsOperation.setHeader(HeaderSet.TYPE, type);
            hsOperation.setHeader(HeaderSet.LENGTH, new Long(file.length()));
            // Définition de la push opération
            Operation putOperation = clientSession.put(hsOperation);
            int taille = (int) file.length(); // on récupere la taille du
                                                // fichier
            byte[] b = new byte[taille]; // on cré un tableau de byte de la
                                            // taille du fichier
            FileInputStream in = new FileInputStream(file);
            in.read(b);// on place le flux in du fichier dans le tableau
            // Envoi de l'objet
            OutputStream os = putOperation.openOutputStream();
            os.write(b);
            os.close();
            putOperation.close();
            clientSession.disconnect(null);
            clientSession.close();
        }
    }
}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
29 août 2008 à 10:20
Salut,

sinon pour ton truc tu peux également faire un séjour ICI il y a un exemple assez intéressant (et qui utilise avetana)...

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
29 août 2008 à 10:37
Salut,

tu as également ce lien : ICI (JSR-82)

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
elothe Messages postés 5 Date d'inscription mardi 6 mars 2007 Statut Membre Dernière intervention 7 novembre 2008
29 août 2008 à 11:23
Merci beaucoup pour ton aide et pour la réindentation du code dans le post car c'est mon premier...

J'ai visité ces sites et c'est sûrement du à mon inexpérience mais je ne vois pas à quel endroit je précise le code d'association bluetooth.

Je suis près à changer de bibliothèque si cela me permettais de résoudre mon problème.

Encore Merci.
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
29 août 2008 à 12:26
Salut,

bah le code tu es censé le renseigné avec l'UUID.
phrase tirée du lien d'ibm (premier lien que je t'ai donné) :
EN:
Each Bluetooth service on a machine needs a unique identifier, so I
decided to give this service the UUID (Universal Unique Identifier) of
8841 (it could be any four-digit number you choose). You're going to
need to remember the UUID when you create the client application.
FR ça donnerai :
Chaque service Bluetooth sur une machine necessite un identifiant unique, j'ai donc décidé d'utiliser l'UUID (Identifiant Unique Universel) 8841 (ça peut-être n'importe le quel nombre à 4 digits) à cet usage. Il est nécessaire de mémoriser cet UUID pour developper votre application client.

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
Rejoignez-nous