2

Radius Networks のこのブログ投稿では、Android には BLE ペリフェラル モード用の API がないため、デバイスのハードウェアが BLE をサポートしていても、Android デバイスを iBeacons (AKA: BLE ペリフェラル モード) としてまだ使用できないことについて説明しています。

注: BLE は Bluetooth Low Energy を意味します

このセクションを読んだ後、私は愚かなことを提案するつもりです

彼らの SDK は中央の役割しかサポートしていないため、サービスを中央サーバーとして「アドバタイズ」することは、静かに座って、接続が既に確立された後にペリフェラル モードで別のデバイスにそのサービスの特性を明らかに (または「アドバタイズ」) することを意味します。この接続の確立では、別のデバイスが最初に実際の無線広告を行う必要があります。Samsung の SDK では対応できません。

セントラル モードのデバイス (Samsung 電話) をだまして、ペリフェラル モードの別のデバイスが接続を確立したと考えさせ、セントラル モードに「アドバタイズ」させることは可能ですか。ソフトウェアで接続を偽装して電話をだますことができますか?

おそらくばかげた考えです。セントラル モードでデバイスをだますことはおそらく可能ですが、「広告」は BLE ペリフェラル モードのアドバタイズではなく、ペリフェラル モードの iBeacon に似ていません。

Android からの BLE ペリフェラル モードのサポートが非常に必要です。Android が最終的にこの機能セットをサポートすることを期待して、何かをハッキングしても問題ありません。BTW はすでに機能要求です

4

1 に答える 1

2

Android を「だまして」別の BLE デバイスに接続していると思わせることができたとしても、この手法は機能しないと思います。android.bluetooth.BluetoothAdapterこの質問は Samsung BLE SDK に関するものですが、Android 4.3 以降に出荷された専用の Android BLE API ( ) にも同じ答えが当てはまると思います。

だまされた部分は少し脇に置いておきましょう。たとえ Android が実際に別の BLE デバイスに接続されていたとしても、それを宣伝させることはできますか? 「広告」がそのサービスを他のデバイスに公開することを意味する場合、答えはイエスです。しかし、この無線送信は 2 つのデバイス間のプライベート チャネルを介して行われるため、iBeacon アドバタイズメントと同じように BLE スキャンで検出することはできませんでした。これはまったく広告ではありません。そのため、Samsung のドキュメントは誤解を招くとブログ投稿で述べました。したがって、実際の接続でこれを行うことができない場合は、接続をだますこともできません。

Bluetooth スタックに関する私の理解は限られていますが、スキャンが取得できる実際のラジオ ブロードキャスト広告は、ハードウェア BLE チップセットによって制御されていると思います。つまり、ハードウェアに作成するように指示する Bluetooth スタックの部分にアクセスする必要があるこれが起こります。Samsung BLE SDK または Android SDK には、意図的にこれを許可するものはないと思います。

別の方法として、BlueDroid スタックへの直接 JNI 呼び出しを行うこともできます。Android のアクセス許可でこれが許可されているかどうか、または広告が BlueDroid スタックに実装されているかどうかはわかりません。

更新: Android 4.4.3 および Android L でペリフェラルとして送信できるようになりまし た。こちらを参照してください。

于 2013-12-17T21:51:14.960 に答える