21

iPhone で「_test._tcp.local」などのカスタム サービスを作成すると、Bonjour では、WiFi または Bluetooth を介してこのサービスをシーク/ブロードキャストできます。

Androidでも可能ですか?

jmDNSがあることは知っていますが、私が理解していることから、 BluetoothではなくWiFi /ネットワークを介してのみ機能します。

ありがとう

賞金を提供したSeva Alekseyevによる編集:私は回避策を求めていません(Zeroconf sans BluetoothまたはBluetooth sans Zeroconfなど)。私は本物を求めています。

4

3 に答える 3

3

Android は現在 Bluetooth 経由の TCP/IP をサポートしておらず、Android のネイティブ NSD サポート (ネットワーク サービス検出) は IP 経由で動作するため、Bluetooth ではありません。

ただし、Wi-Fi 経由で動作します。また、Android は Wi-Fi Direct を介したサービス ディスカバリをサポートしているため、Bluetooth よりも広い範囲とバッテリー効率が得られます。サービス ディスカバリを Wi-Fi Direct 対応アプリケーションに統合する方法については、Android トレーニング レッスンをご覧ください。

この回答の一部は、この質問に対する親愛なる Android ビデオの回答から複製されています。

于 2012-10-25T17:48:19.753 に答える
0

現在これが不可能な理由はいくつかあります。あなたの質問に最も関連するのは、おそらく経験したように、jmDNS がサービスを公開または閲覧するために TCP/IP リンクを必要とすることです (バインド先の IP アドレスが必要です)。他の回答とコメントが述べているように、そのための確立された PANU リンクが必要ですが、現在 Android では提供されていません。

それが機能しない他の理由は次のとおりです。

  • Apple は、いくつかのメカニズムを使用して、iOS デバイスが他の iOS デバイスとのみ通信することを保証しています。そのため、たとえ Android に Bonjour-over-Bluetooth を話させたとしても、それは Android-to-Android でしか機能しません。
  • MFi プログラムの Apple 認定デバイスには、Apple が提供する特別な暗号化チップが搭載されています。これが Bonjour-over-Bluetooth 接続にも当てはまるかどうかはわかりませんが、当てはまると思います。

代わりに、Bluetooth 4 LE の使用を検討することもできます。少なくとも、iOS 5 以降ではスレーブ プロファイルを提供するための Apple API があり、iOS 6 ではマスター プロファイルをサポートするように拡張されています。

于 2012-10-08T10:27:56.397 に答える