GKPeerPickerController を使用せず、両側の「接続ボタン」を押さずに、GKSession を使用して 2 台の iPhone 間の Bluetooth 接続を確立したいと考えています。
私は次のコードを使用しています:
currentSessionAuto = [[GKSession alloc] initWithSessionID: @"instant-friend-auto"
currentSessionAuto.delegate = self;
currentSessionAuto.available = YES;
currentSessionAuto.disconnectTimeout = 5;
[currentSessionAuto setDataReceiveHandler: self withContext:nil];
アプリケーションが両側で開始されると、 - (void)session:(GKSession *)session peer:(NSString *)peerID didChangeState:(GKPeerConnectionState)stateが両側で呼び出され、状態は「GKPeerStateAvailable」になります。
「クラシック」アプリでは、接続を求めるポップアップが両側に表示され、ほとんどの場合、両方の「ユーザー」が同時に接続ボタンをクリックすることはありません。
「自動接続」が必要な場合は、一方の側でのみセッションを開始するメカニズムが必要です。このメカニズムがないと、2 つのセッションが開始されてエラーが発生するためです。
任意のアイデア/ヘルプ?