我使用 Android Beacon Library 作为我的一个信标解决方案。我可以看到,如果我进入信标范围..它会调用" didEnterRegion" 功能,但它永远不会进入" didExitRegion" 当我离开灯塔区域时。我正在使用我在此处Android iBeacon App not working in the background使用的上述代码。除此之外,还有什么方法可以减少范围检测,因为我经常不断获取,因为逻辑上我想记录数据并在客户输入1 mt范围内的信标时发送一次通知。
答案 0 :(得分:1)
在另一个问题中显示的代码中,didEnter Region方法禁用regionBootstrap.disable()
监控。如果您不想禁用它,请删除该代码。
@Override
public void didEnterRegion(Region arg0) {
Log.d(TAG, "Got a didEnterRegion call");
// This call to disable will make it so the activity below only gets launched the first time a beacon is seen (until the next time the app is launched)
// if you want the Activity to launch every single time beacons come into view, remove this call.
regionBootstrap.disable();
Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// Important: make sure to add android:launchMode="singleInstance" in the manifest
// to keep multiple copies of this activity from getting created if the user has
// already manually launched the app.
this.startActivity(intent);
}
如果您不想发送通知,直到用户<&lt; 1m,您必须使用didRangeBeaconsInRegion回调,然后仅在beacon.getDistance < 1.0
时触发通知。