2

「setting->bluetooth」で設定を行わずに、アプリケーションでアクセサリを接続しようとしています。

このリンクの手順に従いました: http://www.pocketmagic.net/2012/07/bluetooth-and-ios-use-bluetooth-in-your-iphone-apps/#.UTKqLKVvdhaアクセサリに接続しようとすると、「エラー 305 で失敗しました」というメッセージが表示されます。

これが私のステップのリストです:

  1. BluetoothManagerサービスのハンドラーとインスタンスを取得します。

    btManager = [BluetoothManager sharedInstance];
    
  2. 通知、Bluetooth 無線の変更 (オン/オフ)、および新しいデバイスの検出を登録します。

    // 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]。ここで私はメッセージを受け取ります

    "デバイス "accessory" F0:B4:79:0B:68:45 のサービス 0x00001000 への接続がエラー 305 で失敗しました".

のような他の方法を試しましたが[acceptSSP][connectWithServices]役に立ちませんでした。最初にペアリングする必要がありますか? もしそうなら、どうすればいいですか?

4

4 に答える 4

1

サービスタグ 0x00002000 で試すことができます。

BluetoothManager *btManager =  [[self bluetoothScanner] bluetoothManager];
[btManager setDevicePairingEnabled:YES];
[btManager connectDevice:bluetoothDevice withServices:0x00002000];
于 2015-02-02T15:58:21.907 に答える
1

to accept pairing requests:

 [[NSNotificationCenter defaultCenter]
 addObserver:self
 selector:@selector(bluetoothPairingUserNumericComparision:)
 name:@"BluetoothPairingUserNumericComparisionNotification"
 object:nil];

[[NSNotificationCenter defaultCenter]
 addObserver:self
 selector:@selector(bluetoothPairingPINResultSuccess:)
 name:@"BluetoothPairingPINResultSuccessNotification"
 object:nil];

then

    - (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]);

}

Now the device is paired. But i'm stuck here because I cannot connect or exchange data.

于 2013-03-20T13:29:14.113 に答える
1

これをコンパイルするには、次の行を BluetoothManager クラス定義に追加する必要があることに注意してください。

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

于 2014-01-13T19:58:29.617 に答える