在iOS和Android上查找蓝牙外围设备的共享标识符
我最近在iOS和Android上开发本机应用程序,处理蓝牙设备 对于iOS,我使用的是核心蓝牙设备和安卓设备 找到BLE设备后,可以在Android上使用MAC地址识别它,在iOS上使用设备的UUID识别它 为同一设备返回的示例包如下所示: iOS在iOS和Android上查找蓝牙外围设备的共享标识符,android,ios,bluetooth,Android,Ios,Bluetooth,我最近在iOS和Android上开发本机应用程序,处理蓝牙设备 对于iOS,我使用的是核心蓝牙设备和安卓设备 找到BLE设备后,可以在Android上使用MAC地址识别它,在iOS上使用设备的UUID识别它 为同一设备返回的示例包如下所示: iOS CBPeripheral: 0x1700ff880, identifier = A3D26155-414C-4940-8EB9-C754AD202B64, //UUID name = DEVICE01, state
CBPeripheral: 0x1700ff880,
identifier = A3D26155-414C-4940-8EB9-C754AD202B64, //UUID
name = DEVICE01,
state = disconnected
Android
mDevice=00:18:31:84:37:E5, //MAC ADDRESS
mScanRecord=ScanRecord [mAdvertiseFlags=6,
mServiceUuids=[0000fff0-0000-1000-8000-00805f9b34fb],
mManufacturerSpecificData={}, mServiceData={},
mTxPowerLevel=-2147483648, mDeviceName=DEVICE01],
mRssi=-58,
mTimestampNanos=5196365700642
问题是,我无法识别两个平台之间的同一台设备,因为在iOS中,标识符是UUID,而在Android中,标识符是MAC地址
我一直在研究如何在iOS上访问MAC地址,并说这是不允许的安全问题,而Android上的UUID没有类似于iOS的值
是否有可能访问两个平台之间的一些通用数据
注意:很明显,设备名称在所有设备上都是重复的,并且不是用作标识符的变量。否。您需要让外围设备公布一些自定义唯一标识符,而不是蓝牙设备地址
例如,您可以让每个设备具有唯一的名称,或者使用服务数据或制造商特定的数据字段。在iOS中,将UUID分配给外围设备,因此不同的iOS设备将不同的UUID分配给外围设备。我们无法在iOS中更改UUID。 在android和iOS中,没有任何数据是相同的。
尝试RSSI范围。我认为这两台设备都获得了相同的外围设备范围(RSSI)值。感谢您的回复!我不能使用RSSI,因为设备不在同一时间搜索,也不在同一范围内。。。我还在想办法解决这个问题你找到解决办法了吗?我也面临同样的问题。