Android 2.1 携帯電話で作成したリモート デバイスへの Bluetooth 接続の信号強度を知る必要があります。SDK から、リモート デバイスを検出した時点で RSSI を特定できることがわかります。しかし、その RSSI 値を経時的に更新する方法がわかりません。
誰か手を貸してくれませんか?ありがとう!!
SDKからRSSIを取得する唯一の方法です。ペアリングされたデバイスの信号の強度を定期的に監視するだけでは役に立たないため、少し不便です。
ただし、方法はありますが、SDKから外れています。ネイティブAPI(NDKを使用)を使用して、Android(およびほとんどすべてのLinuxシステム)の基盤となるBluetoothフレームワークであるBluezAPIによって提供される関数を呼び出すことができます。問題の関数は(Bluezスタックの一部)hci_read_rssi()
によって提供されます。libbluetooth.so
それを使用する方法を学ぶために、Hcidumpツールソース(Bluezに付属)を見ることができます。関数にJNIラッパーコードを記述して、ペアリングされたデバイスの信号強度を取得できます。
この方法を使用することには2つの欠点があります。
hci_read_rssi()
ます。他の無線通信手段が提供するように、これはビーコンからRSSIを測定するよりも遅いです(GSMまたはWIFI)