5

のベースチャットプログラムを実装してBlueToothいます。接続目的で使用しています。しかし、いくつかの特別な要件のアプリケーションのため、デフォルトを使用できません。そのため、ピアを検出するためにandコンボを作成しました。お互いを見つけたら、チャットできます。WifiiPhoneGameKitGKPeerPickerControllerGKSessionGKSessionDelegate

今、私は、1 つのシミュレーターと 1 つ、1 つと1つmac-minisを使用して、3 つのチャット機能をテストしました。上記のすべてのシナリオでチャットできます。しかし、とがお互いを検出しない方法もあります。simulatoriPodiPhoneSimulatoriPhoneiPod

また、これらすべてのデバイス間で発生している接続の種類にも興味があります。理論的にはとGameKitの両方をサポートするためです。問題は、と の間で具体的に選択することです (残念ながら、 の実装はどこにも文書化されていません) 。利用可能な唯一のメソッドを使用してオブジェクトを作成する場合:BlueToothWiFiGKPeerPickerControllerBlueToothWiFiWiFiGKSessionGKSessionDelegateGKSessioninit

– initWithSessionID:displayName:sessionMode:

これが提供する唯一の構成オプションですsessionModeが、3つのオプションしかありません

   GKSessionModeServer,
   GKSessionModeClient,
   GKSessionModePeer,

Bluetoothいずれもとの間の接続の選択を示していませんWiFi

しかし、私は を無効bluetoothにして、動作するようにiPodテストしたmac-miniので、これは を使用していると思いWiFiます。また、ログには次の行が表示されます。

DNSServiceRegister callback: Ref=4c3f3d0, Flags=2, ErrorType=0 name=00XGT0H0A..BTChat1 regtype=_0eilkgh5o2mq17._udp. domain=local.

DNSServiceRegisterとのudp部分は、コミュニケーションが起こっていると思わせますTCP/IP

つまり、これは、最初からデフォルトの通信方法がWiFiのみであることを意味しGKSessionますGKSessionDelegateか、それとも両方を同時にサポートWiFiしますか(ただし、接続が行われているという単一の兆候は得られませんでした)。bluetoothBlueTooth

しかしGameKit、主にそうであるはずBlueToothですよね?正確に何が起こっているのか、状況を明らかにできる人はいますか?

また、誰かが WiFi インターフェイスを実装したサンプル コードを見たことがあります GKPeerPickerControllerか?


解決済み:

わかりました。自分で見つけました。質問で述べたようにGKSession、カスタム実装は と の両方で機能します。実際に私が使用しているにはいくつかの問題があり、おそらくそれが適切に動作するのを妨げていました。電話をハードリセットしてモードをオフにした後、数回オンオフすると電話で動作しました。現在、アプリはモードとモードの両方で正常に動作しています。GKSessionDelegatebluetoothWiFiiPhone (JailBroked)BlueToothGamekitAirplanebluetoothbluetoothWiFiBlueTooth

4

1 に答える 1

1

GKPeerPicker が同様に動作するかどうか知っていますか? NEAR モードを選択すると、wifi/bluetooth 経由で接続できるようになりますか?

INTERNET モードは、TCP/IP を使用してリモート サーバーに接続するためのものだと思います。よろしく

于 2010-08-02T15:06:01.177 に答える