我需要实现一个自我蓝牙应用程序,以连接所有蓝牙设备到iPhone。我知道CoreBluetooth框架是不可能的。
我使用私有API并将DeviceManager和BluetoothManager的头文件添加到私有框架,并从here下载了BeeTee Project
此应用程序运行并找到我附近的所有蓝牙设备,但是当我尝试通过此代码连接到设备时:
[self.bluetoothManager connectDevice:bluetoothDevice];
和这个
[bluetoothDevice connect];
当选择一个单元格时,以上两个代码都要求连接,但BTM返回此消息:
BeeTee [5473:60b] BTM:设备“诺基亚500”上的服务0xffffffff连接F4:xx:xx:xx:xx:xx失败,错误109
什么是错误109?哪个会设置服务号码?
我想我应该在连接之前配对设备但是我该怎么做?
答案 0 :(得分:2)
我只是在猜测,但我认为问题在于BluetoothManager.framework
是BluetoothManager *bluetoothManager = //...
[bluetoothManager setDevicePairingEnabled:YES];
[bluetoothManager connectDevice:bluetoothDevice withServices:0x00002000];
。这允许(等等)SPP蓝牙连接到认证的设备。但问题是:你需要一个内置认证芯片的设备。
我不知道Apple在哪个级别/层上实现了身份验证,但我担心它会在BeeTee使用的私有框架下完成一层。
更新:也许这对你有帮助:
{{1}}
答案 1 :(得分:1)
BluetoothManager *bluetoothManager = //...
[bluetoothManager setDevicePairingEnabled:YES];
[btManager setPincode:@"111111" forDevice:bluetoothDevice.deviceRef];
//where 111111 is your device PIN
[bluetoothManager connectDevice:bluetoothDevice withServices:0x00002000];