0

Estimote を使用してさまざまなビーコンを監視したいと考えています。たとえば、("rid", "uuid", , ) が一連のビーコンを識別し、アプリが使用するすべてのビーコンが同じ "rid" と "uuid" を共有するとします。私はまた、それぞれが複数の店舗を持つことができる多くのブランドを持っています.

このアプリは多くのブランドに販売される予定で、次のようなものを使用したいと考えています。

private static final Region ALL_STORES_REGION = new Region("rid", "uuid", BRAND_ID, null);
beaconManager.startMonitoring(ALL_STORES_REGION);

次に、顧客が特定の店舗を出たときに通知を受け取るには:

beaconManager.setMonitoringListener(new BeaconManager.MonitoringListener() {
        @Override
        public void onEnteredRegion(Region region, List<Beacon> beacons) {
            // do nothing
        }

        @Override
        public void onExitedRegion(Region region) {
            listener.onCustomerLeaving(region.getMinor());
        }
    });

これは私が現在使用しているもので、正常に動作しています。問題は、リージョンの最後の値として null を使用したため (そのブランドのストアをキャプチャするため)、onEnteredRegion メソッドによって返されるリージョンが null を返し、特定のストアを識別できないことです。

考えられる解決策は 2 つあります。入店時に返されるビーコンのリストを保存することと、顧客が退店したときに店の ID を取得することです。(範囲内に複数のビーコンがある場合、これは危険な場合があります)

または、ストア ID を使用して多数の特定のリージョンを監視します。(これにはすべての店舗 ID を知る必要があるため、これも理想的な解決策ではありません)

onExitedRegion メソッドをトリガーした実際のビーコンを取得する方法、またはその他のより良い解決策があるかどうか、私はさまよっていました。

ありがとう!

4

1 に答える 1

1

次の 2 つのオプションがあります。

  1. onEnteredRegion コールバックを受信したら、測距を開始します。測距から周囲にビーコンが戻ってくるので、店舗/ブランドを特定できます.

  2. onEnteredRegion の 2 番目のパラメーター (ビーコン) を見てください。ドキュメントによると:

beacons - List of beacons that triggered onEnteredRegion event. This list may not reflect all beacons around that are matching given region.

この情報を使用して、ストア/ブランドを識別できます。

于 2014-10-14T19:09:22.947 に答える