Я обнаруживаю присутствие с помощью маяков приближения Estimote. Проблема в том, что я получаю несколько уведомлений о входе / выходе, даже если телефон находится очень близко к маяку. У кого-нибудь есть идеи, как это исправить? Я использовал следующий код, прямо с портала разработчиков Estimote.
this.proximityObserver =
new ProximityObserverBuilder(getApplicationContext(),
cloudCredentials)
.onError(new Function1<Throwable, Unit>() {
@Override
public Unit invoke(Throwable throwable) {
Log.e("app", "proximity observer error: " +
throwable);
return null;
}
})
.withBalancedPowerMode()
.build();
final ProximityZone zone = new ProximityZoneBuilder()
.forTag("LDMC")
.inNearRange() //inCustomRange(3.0) //inNearRange()
.onEnter(new Function1<ProximityZoneContext, Unit>() {
@Override
public Unit invoke(ProximityZoneContext context) {
String deskOwner =
context.getAttachments().get("Room");
proximity = true;
Toast.makeText(MainActivity.this, "In Range.",
Toast.LENGTH_SHORT).show();
Log.d("app", "Welcome to " + deskOwner + "room.");
return null;
}
})
.onExit(new Function1<ProximityZoneContext, Unit>() {
@Override
public Unit invoke(ProximityZoneContext context) {
proximity = false;
Toast.makeText(MainActivity.this, "Out of Range.",
Toast.LENGTH_SHORT).show();
Log.d("app", "Bye bye, come again!");
return null;
}
})
.build();