3

Android デバイス (Galaxy Nexus) のクライアント アプリで検出しようとしているローカル ネットワーク上の MacBook Pro で Bonjour サービスを実行しています。

Bonjour サービス検出を 2 つの方法で実装しました。1 つ目は、Android の NSD パッケージを使用する方法です。詳しくはこちらをご覧ください。「ネットワーク上のサービスの発見」セクションで提案されているコードを実装しました。それは私のサービスを問題なく検出しますが、そのサービスの txt レコードにアクセスするための API 呼び出しはありません。アクセスする必要があるため、サービスにヒットする URL を構築することができます。にアクセスできます。

これにより、Bonjour サービス検出の別の方法を試すようになりました。この方法については、こちらの「近くのサービスを検出する」セクションで詳しく説明しています。Bonjour サービスには txt レコード検出用の API があるためです。エラーが記録されていないため、サービスの検出が開始されることはわかっていますが、この方法では Bonjour サービスが検出されず、Apple がデフォルトで MacBook に搭載されているすべてのサービスも検出されません。彼らのウェブサイトとまったく同じように実装されていますが、これを機能させるにはどうすればよいですか? MacBook が WiFi-Direct デバイスとして認識されるようにするには、Bonjour サービスに加えて何かを実行する必要がありますか? それとも、この設定で Android の API を使用することは不可能ですか? Android の API がより完全/文書化されるまで、必要なことを行うために JmDNS などのライブラリを検討する必要がありますか?

これらの新しい Nsd API については、Android が提供するもの (完全ではありません) を除けば、ドキュメントはほとんどないようです。

4

1 に答える 1

0

これはおそらく、MacBook Pro が提供するサービスの実装に依存しています。

"I have a Bonjour service running on my MacBook Pro on my local network" - WI-FI Direct で NSD を使用している場合、ローカル ネットワークで実行されているサービスを探すのではなく、近くで実行されているサービスを探すと思います。 WI-FI ダイレクトおよび接続なしのデバイス。

ただし、Wi-Fi Direct Service Discovery を使用すると、ネットワークに接続しなくても、近くのデバイスのサービスを直接検出できます。

これは、MacBook Pro が WI-FI 直接通信をサポートし、ローカル ネットワークにない検出要求に応答できるようにするために、別の実装が必要になる可能性があることを意味すると思います。申し訳ありませんが、現時点ではこれ以上は言えません。

于 2013-07-29T07:59:10.840 に答える