Una vez que se registra una geovalla, tu app debe agregar una devolución de llamada para responder cuando se active la geovalla. Para ello, puedes usar una subclase de BroadcastReceiver que controle los métodos Intent de las vallas.
Antes de agregar devoluciones de llamada a una geovalla, primero debes registrarla.
Crea una subclase de BroadcastReceiver
En el siguiente ejemplo, se muestra la clase FenceReceiver, que extiende BroadcastReceiver. La clase implementa el método de devolución de llamada BroadcastReceiver.onReceive() para controlar todos los métodos Intent que se originan en las vallas que crea tu app. Cuando se recibe un Intent, se usa el método FenceState.extract() para obtener el estado de la valla y pasarlo a la devolución de llamada.
public class FenceReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
FenceState fenceState = FenceState.extract(intent);
if (TextUtils.equals(fenceState.getFenceKey(), FENCE_KEY)) {
String fenceStateStr;
switch (fenceState.getCurrentState()) {
case FenceState.TRUE:
fenceStateStr = "true";
break;
case FenceState.FALSE:
fenceStateStr = "false";
break;
case FenceState.UNKNOWN:
fenceStateStr = "unknown";
break;
default:
fenceStateStr = "unknown value";
}
mLogFragment.getLogView().println("Fence state: " + fenceStateStr);
}
}
}