質問

ここ、私はもはやすべてのビーコンのための単一の領域を作成するというアプローチを追跡していません。今、私は実行時に地域を作成しています。私は最初に走り回った。 以下は私が実装しようとしているコードです。

public void onBeaconsDiscovered(Region region, final List<Beacon> beacons) { 
     for(int i =0;i<beacons.size();i++)
     { 
        Region r = new Region("RegionID", beacons.get(i).getProximityUUID(), beacons.get(i).getMajor(), beacons.get(i).getMinor()); 
        try { 
              beaconManager.startMonitoring(r); 
            } catch (RemoteException e) {
                e.printStackTrace(); 
            }
    } 
  } 

  public void onEnteredRegion(Region arg0, List<Beacon> arg1) {
         //Log Data in DB 
  }

  public void onExitedRegion(Region region) { 
     //Log Data in DB 
  }
.

上記のアプローチは正しいですか?問題は、時々、同じビーコンが OnEnteredRegion()で2回入っています。前景スキャンと背景スキャンのスキャン間隔で遊ぼうとしましたが、同期していません。Android用見通しビーコンSDKを使用しています。

役に立ちましたか?

解決

問題は非常に簡単かもしれません。コードサンプルは、すべての領域に対して同じリージョン識別子"RegionID"を再利用しています。異なるものを使ってください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top