2016-05-10 5 views
0

ビーコンとしてラズベリーパイを使用しています。ビーコンのUUIDを変更すると、Android Beacon Libraryを使って自分のアンドロイドアプリに新しいUUIDをできるだけ早く検出させたいと思っています。私の知るところでは、2つのパラメータがこれに影響する可能性があります:スキャン周期と伝送速度。私は、送信で10Hz、setForegroundScanPeriodパラメータで300msを使用しています。私はUUIDの変更を非常に高速で検出していますが、この2つのパラメータの最適値が変更を迅速に検出できるかどうか疑問に思っていますか?これに影響を与える他のパラメータはありますか?UUIDの変更をできるだけ早く検出する

+0

Android検出時間をバックグラウンドまたはフォアグラウンドで最適化していますか?あなたはどのOSバージョンをターゲットにしていますか?答えはこれらの質問に対する答えによって異なります。 – davidgyoung

+0

私はフォアグラウンド検出にのみ興味があり、アンドロイド6.0.1で作業しています – Keyb

答えて

1

Android Beacon LibraryのレンジングAPIは、デフォルトで1.1秒ごとにビーコンが表示される定期的なアップデートを提供するように設計されています。これは、デフォルト設定と10ヘルツ(0.1秒ごと)でアドバタイズするビーコンを使用することを意味し、最初の検出は0.1-1.1秒後のどこかに行われます。

この範囲の上限を減らすには、ライブラリのスキャン間隔を短くします。 setForegroundScanPeriod(300l)に電話をかけた場合、検出までの最長時間は300ms(0.3秒)に短縮される可能性があります。これを行うには、ビーコンが少なくとも10 Hzで宣伝されていることを確認する必要があります。そうしないと、スキャンサイクルが短くなると検出されず、検出時間が長くなります。

この数をさらに減らすことはできますが、一般的には、頻繁に送信する場合は送信レートの長さの1.1倍以上にする必要があります。したがって、1秒ごとに送信するビーコンは、1100msに設定します。 100msごとに送信する場合は200msに設定します。

+0

ありがとうございました。あなたは私に説明してください、なぜこの1.1xと送信とスキャン期間の2倍の関係、私は本当にそれを取得していないのリンクを投稿できますか? – Keyb

+0

スキャン周期の境界で送信されているパケットが見つからないため(スキャンを停止して再開すると)、スキャン期間を広告期間の1倍にしたくない場合があります。比率がちょうど1.0の場合は、常に境界に来る場合は、それらのすべてを見逃す可能性があります。非常に高速なスキャンサイクルがある場合、2倍の推奨があります。高速サイクルでは、スキャンのオン/オフ遷移がより多くなります。そのため、境界の通過中のパケットの割合がはるかに高くなります。 2.0の比率では、各スキャンサイクルで少なくとも1つのパケットが存在する可能性が非常に高くなります。 – davidgyoung

関連する問題