继续上一个问题here,我不再遵循为所有信标创建单个Region的方法。现在我在运行时创建区域。我先做了一下。 下面是我试图实现的代码。
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()中输入两次,而不退出。我曾尝试使用扫描间隔进行前景和后台扫描,但事情不同步。我正在使用 Estimote beacon sdk for android。
答案 0 :(得分:1)
问题可能很简单。您的代码示例正在为所有区域重复使用相同的区域标识"RegionID"
。请使用不同的。