繁体   English   中英

如何在Xamarin.ios应用程序中比较CBUUID对象

[英]How to compare CBUUID objects in Xamarin.ios app

我正在开发Xamarin.iOS蓝牙应用程序,但我需要克服一些障碍。 我正在尝试从C#iOS应用程序连接到外围设备。 我可以成功连接到设备,但是在发现设备的服务和特性之后,我需要捕获特定的服务,以便可以将其进一步用于不同的目的。

现在,问题是如何从cb外设对象的服务列表中捕获特定服务。 每个服务都由CBUUID对象标识,并且我已经知道设备将返回的CBUUID对象,但是我不确定如何比较它们,以便知道可以捕获适当的服务。

如果您的目标是iOS 7.1(或更高版本),则可以比较CFUUIDSystem.String Uuid属性。 那是最简单的方法。 例如

if (cbuuid1.Uuid == cbuuid2.Uuid)
    Console.WriteLine ("Equal");
else
    Console.WriteLine ("Different");

否则(iOS 7.0和更早版本),您需要比较CFUUIDNSData Data属性。 首先比较它们的长度,如果相等,则比较其中的每个字节。 例如

bool equal = false;
using (var d1 = cbuuid1.Data)
using (var d2 = cbuuid2.Data) {
    if (d1.Lenght == d2.Length) {
        for (int i=0; i < d1.Lenght; i++) {
            if (d1 [i] != d2 [i]) {
                equal = false;
                break;
            }
        }
    }
}
Console.WriteLine (equal ? "Equal" : "Different");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM