Bonjour,

Je souhaite envoyer un fichier depuis un projet VCL Xe7 vers un appareil connecté via Bluetooth.

Pour cela j'utilise l'unité System.Bluetooth avec les classes: TBluetoothManager, TBluetoothDevice, TBluetoothSocket...

J'arrive à visualiser la liste des périphériques disponibles et coupler avec celui que je désire:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
FBluetoothManager.StartDiscovery(4000);
FBluetoothManager.OnDiscoveryEnd := DevicesDiscoveryEnd;
....
 
FAdapter.Pair(FDiscoverDevices[ComboBoxDevices.ItemIndex]);
Je peux également lister les services disponible sur le périphérique couplé:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
LDevice := FPairedDevices[ComboboxPaired.ItemIndex] as TBluetoothDevice;
LServices := LDevice.GetServices;
for I := 0 to LServices.Count - 1 do
    ComboBoxServices.Items.Add(LServices[I].Name + ' --> ' +
      GUIDToString(LServices[I].UUID));
Mon problème survient ici, je ne sais comment envoyé un fichier depuis ses services...

J'utilise TBluetoothServerSocket et TBluetoothSocket pour cela mais sans résultat:
Voici mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
LDevice := FPairedDevices[ComboboxPaired.ItemIndex] as TBluetoothDevice;
   LServices := LDevice.GetServices;
   FServerSocket := FBluetoothManager.CreateServerSocket('File transfert', LServices[IndexServiceSelected].UUID, False);
   FSocket := LDevice.CreateClientSocket
   (LServices[IndexServiceSelected].UUID , False);
 
   FSocket.Connect;
   FServerSocket.Accept(500);
 
   Stream := TFileStream.Create('C:\Temp\testSend.png', fmOpenRead);
   try
   Stream.Read(ToSend[0], SizeOf(ToSend));
   finally
   Stream.Free;
   end;
   FSocket.SendData(ToSend);
Merci pour votre aide.