我们正在创建一个蓝牙硬件设备,并希望在数据库中存储唯一标识符,以便多个用户不会尝试连接到同一设备.有Android和iOS应用程序.
据我所知,在iOS中你无法访问MAC地址,所提供的UUID是在iOS端生成的.我们可以添加提供UUID的特性,但有没有办法在iOS和Android上拥有一致的标识符而无需连接到蓝牙设备?
解决方法:
如果您可以控制硬件及其所宣传的内容,则可以将mac地址(或其他一些唯一标识符)包括为服务数据或制造商特定数据.请参阅Android L或更高版本的https://developer.android.com/reference/android/bluetooth/le/ScanRecord.html.对于较低的Android版本,您必须自己解析扫描记录,这有点痛苦.
对于iOS,请参见:https://stackoverflow.com/a/25392156/4248895
要在Android上快速验证概念,您可以使用SweetBlue来为您处理不同的操作系统版本.看到:
http://idevicesinc.com/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#serviceData
http://idevicesinc.com/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#manufacturerData