2017-10-16 3 views
0

2つのiphoneが互いに衝突したときに何らかの情報を送信するように検出したいと考えています。このタスクのためのAPIはありますか? ibeaconを使用すると、2台の電話機が近接しているときを検出できますが、2台の電話機が互いに隣接している場合には狭くなります。2つのiphoneが衝突してハンドシェイク信号を送信したときの検出

+2

これは数年前のことでした。 https://en.wikipedia.org/wiki/Bump_(application) – picciano

+0

@piccianoはい私はこの正確な機能を作りたいと思っています! – chibro2

+1

私は、タイムスタンプと各電話機の位置をバックエンドサーバに送信したと考えています。これは「近い」バンプにマッチし、各デバイスにプッシュ通知を送りました。このプロセスを処理するにはサーバーが必要です。 – picciano

答えて

1

これに対応するAPIはありません。 2つのiPhoneがどれほど近いかを示すAPIもありません。

あなたがしなければならないことは、バンプをする時点で何らかの種類のブロードキャストメッセージを送信することです。また、別のデバイスからこのメッセージをリスンする状態(事前)にする必要があります。

バンプメッセージを検出すると、バンプメッセージと同時に発生したかどうかを判断し、それが突っ込んだ電話である必要があると判断できます。この時間のしきい値にはいくらかの誤差があります。

純粋にiBeacon信号の強さから(おそらく)同じ領域内にあると判断することもできます。ただし、バンプタイムスタンプを使用する場合は必要ですか?

1

ユーザーが携帯電話を起動し、アプリを立ち上げる前に起動すると予想される場合は、多くのオプションがあります。加速度計を使用してバンプの衝撃を検出し、タイムスタンプ付き通知を中央サーバーにブロードキャストすることができます。あなたはヒットの検索を絞り込むか、それを確認するためにGPSの場所を使用することができます。

デバイスがロックされている場合でもアプリがバンプを認識するようにするには、唯一の実際のオプションはiBeaconsです。すべてのデバイスにUUIDを使用してビーコン領域を作成し、メジャー/マイナーIDを使用して個々のデバイスを識別することができます。あなたは各デバイスにIDをブロードキャストさせ、あなたのUUIDを使ってすべてのデバイスをリスンします。

範囲内のいずれかのデバイスに通知されると、バックグラウンドの時間を求めて、それらのビーコンの測距を開始したり、加速度計のバンプを聞いたりします。直前の範囲でバンプとビーコンが検出された場合は、セントラルサーバーを使用して接続したり、BLEを使用して接続を開くこともできます。悪いことに、バックグラウンド処理を開始すると、アプリがスリープ状態に戻るまでに3分しかかからないということです。したがって、あなたのアプリを実行している複数の人々が電話機に衝突する前に長時間範囲内にいる可能性があるビジネスミーティングのような状況では、バンプを見逃す可能性があります。

関連する問題