我们正在创建一个蓝牙硬件设备,并希望在数据库中存储一个唯一的标识符,以便多个用户不会尝试连接到同一设备。有一款安卓和一款iOS应用。
我的理解是,在iOS中,您不能访问MAC地址,所提供的UUID是在iOS端生成的。我们可以添加一个提供UUID的特征,但是有没有办法在不连接蓝牙设备的情况下在iOS和Android上拥有一致的标识符呢?
发布于 2015-12-18 20:41:36
如果您可以控制硬件及其广告内容,则可以将mac地址(或其他一些唯一标识符)作为服务数据或特定于制造商的数据包含在内。请参阅安卓L或更高版本上的https://developer.android.com/reference/android/bluetooth/le/ScanRecord.html。对于较低版本的Android,你必须自己解析扫描记录,这有点麻烦。
有关iOS,请参阅此处:https://stackoverflow.com/a/25392156/4248895
要快速验证安卓的概念,你可以使用SweetBlue,它可以在幕后为你处理不同的操作系统版本。请参见:
发布于 2015-12-19 16:01:26
对于iOS:
BLE设备可以在其通告数据中通告服务UUID。
[myPeripheralManager startAdvertising:@{ CBAdvertisementDataServiceUUIDsKey :
@[myFirstService.UUID, mySecondService.UUID] }];
在iOS应用程序中,您可以扫描具有指定服务UUID的设备:
[myCentralManager scanForPeripheralsWithServices:@[myFirstService.UUID, mySecondService.UUID] options:nil];
您的应用程序将仅发现这些服务UUID的BLE设备。
https://stackoverflow.com/questions/34340052
复制相似问题