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 が提供するもの (完全ではありません) を除けば、ドキュメントはほとんどないようです。