2

我试图在我的应用程序中连接一个配件,而不在“设置->蓝牙”中进行设置。

我已按照此链接中的步骤操作:http ://www.pocketmagic.net/2012/07/bluetooth-and-ios-use-bluetooth-in-your-iphone-apps/#.UTKqLKVvdha它运行良好,直到我得到当我尝试连接到附件时,消息“失败并出现错误 305”。

这是我的步骤列表:

  1. 获取BluetoothManager服务的处理程序和实例:

    btManager = [BluetoothManager sharedInstance];
    
  2. 注册通知、蓝牙无线电更改(开/关)和发现新设备:

    // 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
    
  3. BluetoothDevice使用类似的方法连接到配件[btdev connect]。在这里我收到消息

    “连接到设备“附件”F0:B4:79:0B:68:45 上的服务 0x00001000 失败,出现错误 305”。

我已经尝试过其他方法,例如[acceptSSP][connectWithServices]但它没有帮助。我必须先配对吗?如果是这样,我该怎么做?

4

4 回答 4

1

大约一周以来,我一直收到“失败并出现错误 305”。我终于通过在扫描服务之前将 BluetoothManager 设置为可连接来解决它。我没有在任何其他论坛中看到对此设置的引用。希望能帮助到你。

[btManager setConnectable:YES];
[btManager scanForServices:0xFFFFFFFF];
于 2013-07-24T14:05:20.247 回答
1

我希望这会对您有所帮助,您可以尝试使用服务标签 0x00002000

BluetoothManager *btManager =  [[self bluetoothScanner] bluetoothManager];
[btManager setDevicePairingEnabled:YES];
[btManager connectDevice:bluetoothDevice withServices:0x00002000];
于 2015-02-02T15:58:21.907 回答
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]);

}

现在设备已配对。但我被困在这里,因为我无法连接或交换数据。

于 2013-03-20T13:29:14.113 回答
1

请注意,为了编译它,您必须将以下行添加到 BluetoothManager 类定义中:

-(void)acceptSSP:(NSInteger)errorCodeShouldBeZero forDevice:(id)device;

于 2014-01-13T19:58:29.617 回答