iOS和Android无法连接的蓝牙设备是否有唯一标识符?

我们正在创建一个蓝牙硬件设备,并希望在数据库中存储唯一标识符,以便多个用户不会尝试连接到同一设备.有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

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...