GKPeerPickerControllerを使わずにGKSessionを使って2つのiPhone間でブルートゥース接続を確立し、両側に「接続ボタン」を押さずにしたい。私は次のコードを使用していGKSessionモードピア:ボタン/確認なしで2つのピアを自動的に接続する方法は?
:
currentSessionAuto = [[GKSession alloc] initWithSessionID: @"instant-friend-auto"
currentSessionAuto.delegate = self;
currentSessionAuto.available = YES;
currentSessionAuto.disconnectTimeout = 5;
[currentSessionAuto setDataReceiveHandler: self withContext:nil];
アプリケーションが両側に開始され、 - (無効)セッション:(GKSession *)セッションピア:(NSStringの*)そのpeerID didChangeState :(GKPeerConnectionState)状態は、状態 "GKPeerStateAvailable"で両側で呼び出されます。
「クラシック」アプリでは、接続を求めるためにポップアップが表示され、ほとんどの時間は「ユーザー」が同時に接続ボタンをクリックしません。
「自動接続」を使用する場合、このメカニズムがないと2つのセッションが開始され、エラーが発生するため、1側でセッションを開始するだけのメカニズムが必要です。
アイデア/ヘルプ?
リンクのTx。私は近似的に同じコードを持っています...私はテンポ(0.5s)が(利用可能な状態で)コードで使用されている理由を理解していませんか? – fvisticot
公正な質問。 0.5秒待ってからconnectToPeerが正常に機能しているようです。 – Marco
このタイムアウトは、接続がテーブルビューが更新される前にシーンの裏に確立する機会を与えている可能性があります。このようなタイムアウトは悪い習慣です。 – openfrog