ここで尋ねた以前の質問の続きですが、すべてのビーコンに対して単一のリージョンを作成するというアプローチには従いません。現在、実行時にリージョンを作成しています。最初にレンジングを行いました。以下は、私が実装しようとしているコードです。
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用のEstimoteビーコンSDKを使用しています。