我正在尝试连接我的应用程序中的附件而不在“setting-> bluetooth”中进行设置。
我已按照此链接中的步骤操作:http://www.pocketmagic.net/2012/07/bluetooth-and-ios-use-bluetooth-in-your-iphone-apps/#.UTKqLKVvdha当我尝试连接附件时收到“因错误305失败”消息,它运行良好。
以下是我的步骤列表:
获取BluetoothManager
服务的处理程序和实例:
btManager = [BluetoothManager sharedInstance];
注册通知,更改蓝牙无线电(开/关)以及发现新设备:
// setup bluetooth notifications
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(deviceDiscovered:)
name:@"BluetoothDeviceDiscoveredNotification"
object:nil];
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(bluetoothAvailabilityChanged:)
name:@"BluetoothAvailabilityChangedNotification"
object:nil];
此处应用程序可以在
中发现附件- (void)deviceDiscovered:(NSNotification *) notification
使用BluetoothDevice
方法连接到配件,例如[btdev connect]
。我在这里收到消息
“连接到设备上的服务0x00001000”附件“F0:B4:79:0B:68:45失败,错误305”。
我尝试了其他方法,例如[acceptSSP]
,[connectWithServices]
,但它没有帮助。我必须先配对吗?如果是这样,我该怎么做?
答案 0 :(得分:1)
接受配对请求:
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(bluetoothPairingUserNumericComparision:)
name:@"BluetoothPairingUserNumericComparisionNotification"
object:nil];
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(bluetoothPairingPINResultSuccess:)
name:@"BluetoothPairingPINResultSuccessNotification"
object:nil];
然后
- (void)bluetoothPairingUserNumericComparision:(NSNotification *)notification {
NSLog(@"NOTIFICATION:bluetoothPairingUserNumericComparision: called. BT State: %d", [btManager enabled]);
NSLog(@"NOTIFICATION: %@", notification);
NSDictionary *dict = notification.object;
BluetoothDevice *device = dict[@"device"];
NSNumber *value = dict[@"value"];
NSLog(@"device: %@ value: %@", device, value);
[btManager acceptSSP:0 forDevice:device];
}
- (void)bluetoothPairingPINResultSuccess:(NSNotification *)notification {
NSLog(@"NOTIFICATION: bluetoothPairingPINResultSuccess called.");
NSLog(@"NOTIFICATION: %@", notification);
NSLog(@"paired devices: %@", [btManager pairedDevices]);
}
现在设备已配对。但我被困在这里因为我无法连接或交换数据。
答案 1 :(得分:1)
我已经获得了“错误305失败”大约一周了。我最终通过在扫描服务之前将BluetoothManager设置为可连接来解决它。我没有在任何其他论坛中看到过对此设置的引用。希望它有所帮助。
[btManager setConnectable:YES];
[btManager scanForServices:0xFFFFFFFF];
答案 2 :(得分:1)
请注意,为了使其编译,您必须将以下行添加到BluetoothManager类定义中:
-(void)acceptSSP:(NSInteger)errorCodeShouldBeZero forDevice:(id)device;
答案 3 :(得分:1)
我希望这会对你有所帮助,你可以试试服务标签0x00002000
BluetoothManager *btManager = [[self bluetoothScanner] bluetoothManager];
[btManager setDevicePairingEnabled:YES];
[btManager connectDevice:bluetoothDevice withServices:0x00002000];