通过蓝牙SPP作为客户端-Tizen .NET接收响应

问题描述 投票:0回答:1

我正在尝试通过BT SPP接收连接到服务器的客户端设备的响应。创建客户端套接字并启动绑定之后Client = device.CreateSocket(ServiceUuid); Client.ConnectionStateChanged += ClientConnectionStateChanged; device.ConnectionStateChanged += DeviceConnectionStateChanged; device.CreateBond();

我在绑定回调Client.Connect();中调用connect方法,然后订阅OnDataReceived事件Client.DataReceived += OnDataReceived;

现在一切正常,但是从不调用OnDataReceived,就好像没有返回数据一样。但是,由于我还控制着运行在辅助设备上的服务器,所以我知道有数据正在发送回去,为什么它却没有收到?

c# .net xamarin tizen xamarin.tizen
1个回答
0
投票

请参阅下面的DataReceived()函数测试代码。

[https://review.tizen.org/gerrit/gitweb?p=test/tct/csharp/api.git;a=blob;f=tct-suite-vs/Tizen.Bluetooth.Manual.Tests/testcase/TSIBluetoothServerSocket.cs;h=a52a38bb2ce46e384ca24897c27a694173d47fff;hb=refs/heads/tizen][1]

303         public async Task DataReceived_CLIENT_EVENT()
304         {
305             try
306             {
307                 /* We can't occupy the precondition, if BT feature is not supported in Manual TC */
308                 if (_isBluetoothSupported == false)
309                 {
310                     BluetoothHelper.DisplayLabel("DataReceived_CLIENT_EVENT");
311                     await ManualTest.WaitForConfirm();
312                     return;
313                 }
314 
315                 BluetoothSetup.CreateClientSocketUtil();
316                 if (BluetoothSetup.Client == null)
317                 {
318                     ManualTest.DisplayCustomLabel("Precondition failed: Test device should be paired to the remote device.");
319                     await ManualTest.WaitForConfirm();
320                     return;
321                 }
322 
323                 await BluetoothSetup.ConnectSocketUtil();
324                 BluetoothSetup.Client.DataReceived += (sender, args) =>
325                 {
326                     Log.Info(Globals.LogTag, "DataReceived in client: "+args.Data.Data);
327                     BluetoothHelper.DisplayPassLabel("DataReceived_SERVER_EVENT");
328                 };
329                 await ManualTest.WaitForConfirm();

并且,请检查ConnectionStateChanged回调中的结果是否成功。

© www.soinside.com 2019 - 2024. All rights reserved.