如何让IOS设备“自己的”蓝牙UUID实用?

时间:2017-01-12 16:55:23

标签: ios bluetooth uuid

我正在开发一个应用程序,要求ios设备提供自己的蓝牙UUID(不从扫描/连接的设备获取蓝牙UUID),然后将其发送到服务器进行进一步开发。我在互联网上找不到任何答案。

问题:

  1. 如何让ios设备“自己的”蓝牙uuid实用? (它不是另一个设备的蓝牙uuid,它不是连接到我的设备的另一个设备,然后找到我的蓝牙uuid。它是设备自己的蓝牙uuid并获得它没有任何连接到另一个设备。)
  2. 蓝牙uuid是否独一无二?似乎蓝牙uuid将每隔15分钟更换一次,如何检测uuid是否改变了?我可以设置自定义蓝牙uuid吗?

1 个答案:

答案 0 :(得分:1)

<强>目标C

NSString *newUUID = [[NSUUID UUID] UUIDString];

修改

iOS蓝牙技术包含两个主要实体供您自己关注; 中心外围设备 Centrals 是需要数据的设备, Peripherals 是提供数据的设备。当您将数据从 Peripheral 发送到 Central 时, Central 将会观察CBServiceCBCharacteristic Peripheral 将尝试发送到 Central

enter image description here

要回答您的问题:您要检查的UUID不应与设备相关联,而应与您的CBServiceCBPeripheral相关联。

CBUUID *myService = [CBUUID UUIDWithString: @"MyServiceID"];

如果您想必须跟踪设备,我想您可以做的一件事情如下:

<强>发送

// Get Device ID
NSString *deviceID = [UIDevice currentDevice].identifierForVendor.UUIDString;

// Add To Serivce ID With Space Inbetween
NSString *newID = [NSString stringWithFormat:@"%@ %@", myServiceID, deviceID];

<强>接收

// Then When You Read It, Splice at the "Space"
NSArray *splice = [newID componentsSeparatedByString:@" "];

// Device
NSString *readDeviceID = splice[0];

// Service ID
NSString *readServiceID = splice[1];