2013-03-08 5 views
7

私は、1つのデバイスにWifiP2p Bonjourサービスをブロードキャストし、2つ目のデバイスで発見して接続する簡単なアンドロイドアプリケーションを実装しようとしています。私はチュートリアルhereにかなり従ってきました。Android Wifiダイレクトサービスディスカバリー

私は、有効なChannelオブジェクト、DnsSdServiceResponseListenerを持っている、とDnsSdTxtRecordListener、このコールを経由して、それらを設定:両方のリスナーは本物のそれをシンプルに保つために、いくつかのデバッグ情報を吐き出す今の時点で

mManager.setDnsSdResponseListeners(channel, servListener, txtListener); 

問題は、私のDnsSdServiceResponseListenerが呼び出されないということですが、DnsSdTxtRecordListenerを呼び出さず、すべての引数が合法的な表情で渡されました。どのようにして呼び出すことができますが、他は呼び出すことはできません

私は2つの実際のデバイスを使用してテストしています。両方ともアンドロイドを実行しています。

ありがとうございます!

答えて

10

最後に分かりました。サービス要求を作成 mServiceInfo = WifiP2pDnsSdServiceInfo.newInstance(Consts.SERVICE_INSTANCE, Consts.SERVICE_REG_TYPE, record);

:サービス要求のインスタンスを取得すると、私はサービスの登録

...サービスインスタンス名を指定してサービスを作成するときに使用される値と一致するように入力した mServiceRequest = WifiP2pDnsSdServiceRequest.newInstance(Consts.SERVICE_INSTANCE, Consts.SERVICE_REG_TYPE);

サービス要求を取得するとき、私は mServiceRequest = WifiP2pDnsSdServiceRequest.newInstance();

... newInstanceメソッドに引数を削除し、両方のリスナーが今と呼ばれています。私の最初の方法は近くに放送されている他のサービスを除外するように思われるので、もともと私はその過負荷を選択したのです。

+0

大変ありがとうございます。あなたは命の恩人です! –