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:
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 FBluetoothManager.StartDiscovery(4000); FBluetoothManager.OnDiscoveryEnd := DevicesDiscoveryEnd; .... FAdapter.Pair(FDiscoverDevices[ComboBoxDevices.ItemIndex]);
Mon problème survient ici, je ne sais comment envoyé un fichier depuis ses services...
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));
J'utilise TBluetoothServerSocket et TBluetoothSocket pour cela mais sans résultat:
Voici mon code:
Merci pour votre aide.
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);
Partager