如何以 xamarin 形式加入 BLE 通知中的值?

问题描述

我在 BLE 通知中以 20 字节块的形式获取数据。我正在将其转换为字符串,但我需要将所有字符串连接在一起。这是我的代码

characteristicRead.ValueUpdated += (o,e) =>
            {
                Device.BeginInvokeOnMainThread(() =>
                {
                    //var readvalue2 = characteristics.Value;
                    var bytes = e.Characteristic.Value;
                    //var readvalue = await characteristics.ReadAsync();
                    BLEresultnew = System.Text.Encoding.UTF8.GetString(bytes);

                    Console.WriteLine(BLEresultnew);
                    var termsList = new List<string>();
                    //var joinedStrings = termsList.Join(",");
                    termsList.Add(BLEresultnew);
                    concat = String.Join(" ",termsList.ToArray());
                    //int listdata=termsList.Count();
                    //string valuel = listdata.ToString();
                });
            };
            await characteristicRead.StartUpdatesAsync();

这是我需要加入并显示在字符串或数组中的日志中的数据。

01-07 13:07:07.340 I/mono-stdout( 4797): {"name":"Lime","stat
us":"Available"},{"n
01-07 13:07:07.448 I/mono-stdout( 4797): us":"Available"},{"n
ame":"Peach","statu
01-07 13:07:07.568 I/mono-stdout( 4797): ame":"Peach","statu
s":"Available"},{{"n
01-07 13:07:07.650 I/mono-stdout( 4797): s":"Available"},{{"n

我尝试过 string.Join 但它不起作用。我已经尝试过字符串生成器,但仍然没有加入所有字符串,如下所示。

Console.WriteLine(BLEresultnew);
                    StringBuilder sb = new StringBuilder(BLEresultnew);
                   //sb.Append(BLEresultnew);
                    concat= sb.Append(BLEresultnew).ToString();

有什么建议可以解决这个问题吗?

解决方法

StringBuilder 效率更高,但简单地这样做应该可以工作(假设 concat 是一个类级变量)

concat += BLEresultnew;