4

iOS と Android デバイス (iPhone 5、iPad 3、Galaxy S3、Nexus 7 はすべて Bluetooth 4.0 を使用) をペアリングし、相互にデータを送信するアプリケーションを作成する必要があります。

  • この量のデータは制限されていますか? 写真やPDFなどを送ってもらえますか?

CoreBluetooth と Apple BTLE_Transferのサンプル コードを使用して、2 つの iOS デバイス間のペアリングとデータの送信を既に行っています。

私が理解したことのうち、ペリフェラル(サーバー)はセントラル(クライアント)にアドバタイズできます。このセントラルは自分自身をスキャンし、アドバタイズされたサービスの UUID を探してサーバーを見つけようとします。

Androidでサーバーを作成すると、サーバーは接続を待機しています(リッスン)。サーバーのUUIDとMACアドレスを知っています。しかし、iPhone でスキャンすると (もちろん同じ UUID をスキャンします)、サーバーが見つかりません。

  • Android サーバーが iOS の Peripheral のようにアドバタイズする可能性はありますか?
  • または、iPhone クライアントがサーバーの MAC アドレスを使用して接続する可能性はありますか?
4

3 に答える 3

10

Q: この量のデータは制限されていますか? 写真やPDFなどを送ってもらえますか?

Bluetooth Low Energy は、大量のデータを送信するように最適化されておらず、ストリーミングにも最適化されていません。小さなチャンクのデータを定期的に送信するのに適しています (温度測定値、時間など)。この回答を見て、BLE 転送が従来の Bluetooth とどのように異なるかを理解してください。そうは言っても、BLE 経由で大量のデータを送信でき、データ量は無制限です。ただし、これは信頼性が低く、比較的遅くなる可能性があります。

Q: Android サーバーが iOS のペリフェラルのようにアドバタイズする可能性はありますか?

サーバー/クライアントであることは、ペリフェラル/セントラルであることとはまったく異なります:-

ペリフェラル/セントラルは、接続方法を決定します。中央デバイスが接続を開始する必要があります。周辺機器は、接続要求をアドバタイズして待機する必要があります。

クライアント/サーバーは、データの分散方法を決定します。Gatt サーバーはデータを保持します。Gatt クライアントは、このデータの読み取り、書き込み、または通知 (読み取りの継続的なストリームの取得) を行うことができます。ほとんどの場合、サーバーは周​​辺機器でもありますが、これは必須ではありません。

あなたの質問に答えるために、はい、サーバーは iOS の周辺機器のようにアドバタイズできます。ただし、Android の場合、この機能はまだ利用できず、次のバージョン (Android L) リリースの一部になる予定です。詳細については、この回答を参照してください。

Q: または、iPhone クライアントがサーバーの MAC アドレスを使用して接続する可能性はありますか?

私の知る限り、coreBluetooth では、接続する周辺機器の MAC アドレスではなく UUID が必要です。周辺機器からアドバタイズされているサービスを知る必要はありません。最善の策は、周辺機器をスキャンしてから、周辺機器に属することがわかっている UUID および/または広告データを持つものに接続することです。

これが役立つことを願っています。

于 2014-07-31T19:27:36.627 に答える
0

わからない。Bluetooth LE は、大きなファイルを転送するのには適していません。1 回のリクエスト電話では、18 バイトしかありません。

Nexus 7 の Bluetooth チップに欠陥があり、正しく動作しません。

IPhone - Light Blue の無料アプリケーションをお試しください。

それで...

最初の質問: はい。

2 番目: はい、しかし、それは良い考えではありません。Iphone の MAC アドレスは 10 分ごとに交互に切り替わり、すべて Bluetooth のオン/オフを切り替えます。

于 2014-07-31T17:09:40.613 に答える
0

一般に、大きなファイルを送信するには、インターネット接続 (クラウド経由) を使用するのが最適です。オーバーヘッドを削減できるフレームワークは多数あります。

ただし、主な問題は、データを送信するデバイスをどのように検出するかです。

BLE やサウンドを使用するなど、自分でそれを行う方法は複数あります。

正直なところ、これは大変な作業なので、アプリがエンドユーザー主導である場合は、http: //p2pkit.ioまたは近くの google などのクロス プラットフォーム検出を実行できるフレームワークを使用することをお勧めします。

免責事項: 私は、iOS および Android 用の p2pkit を開発している Uepaa で働いています。

于 2016-05-10T15:45:44.367 に答える