Classic Bluetooth Basic app的demo,我初學delphi,發現就是改了uuid之后可以連接我的藍牙設備,并且向藍牙設備發送資料,但是藍牙設備向我手機app發送資料收不到,如果在發送資料后 LData := FSocket.ReceiveData(100);這里面設定時間后可以采集到資料,如果不設定時間是一直采集的意思嗎?我看到demo里面有在連接的時候創建一個行程來一直獲取藍牙接收資料,但是不知道怎么的并沒有跑這段,行程這里看不大明白,這里是創建行程來捕捉藍牙資料,問了高手說是可以用hook的方式來接收資料,但都不明白,有沒有高手可以解釋下:
demo路徑:
radstudiodemos-code-2026-branches-RADStudio_Berlin\Object Pascal\Multi-Device Samples\Device Sensors and Services\Bluetooth\Classic Bluetooth Basic app
代碼:
procedure TServerConnectionTH.Execute;
var
Msg: string;
LData: TBytes;
begin
while not Terminated do
try
FSocket := nil;
while not Terminated and (FSocket = nil) do
FSocket := FServerSocket.Accept(100);
if(FSocket <> nil) then
begin
while not Terminated do
begin
LData := FSocket.ReceiveData;
if Length(LData) > 0 then
Synchronize(procedure
begin
Form1.DisplayR.Lines.Add(TEncoding.UTF8.GetString(LData));
Form1.DisplayR.GoToTextEnd;
end);
Sleep(100);
end;
end;
except
on E : Exception do
begin
Msg := E.Message;
Synchronize(procedure
begin
Form1.DisplayR.Lines.Add('服務器埠關閉: ' + Msg);
Form1.DisplayR.GoToTextEnd;
end);
end;
end;
end;
uj5u.com熱心網友回復:
藍牙連接下位機不能用server和client,因為下位機不能用服務,所以要用客戶端接收,如果是兩個手機是可以建立客戶端發送然后服務端接收模式的,這個demo我用過,可以實作uj5u.com熱心網友回復:
這個我搞明白了,問題是現在這里的我想實作在常駐一個執行緒一直接收資料,該怎么做呢?uj5u.com熱心網友回復:
這個通訊就是一直在接收的uj5u.com熱心網友回復:
在ios上能拿到藍牙的mac地址嗎uj5u.com熱心網友回復:
或者能拿到廣播資料做決議嗎uj5u.com熱心網友回復:
我除錯發現那個程式不對,不用accept。uj5u.com熱心網友回復:
請問在經典Delphi藍牙demo中ToSend := TEncoding.UTF8.GetBytes(Edit1.Text);
FSocket.SendData(ToSend);
DisplayR.Lines.Add('Text Sent');
這幾句操作成功后,為什么手機收不到訊息呢
有什么方式可以 向手機或者其他接收設備 發送字符 或者檔案呢
uj5u.com熱心網友回復:
電腦的藍牙訪問手機的藍牙?手機藍牙也用經典的?轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/32631.html
標籤:網絡通信/分布式開發
上一篇:合并單元格
