Cómo administrar devoluciones de llamada de vallas

Una vez que se registra una barrera, tu app debe agregar una devolución de llamada para responder cuando se active la barrera. Puedes hacerlo con el uso de una subclase de BroadcastReceiver para controlar los métodos Intent de las barreras.

Antes de agregar devoluciones de llamada a una barrera, primero debes registrarla.

Crea una subclase de BroadcastReceiver

En el siguiente ejemplo, se muestra la clase FenceReceiver, que extiende BroadcastReceiver. La clase implementa el BroadcastReceiver.onReceive() método de devolución de llamada para controlar todos los Intent métodos que se originan en las barreras creadas por tu app. Cuando se recibe un Intent, se usa el FenceState.extract() método para obtener el estado de la barrera 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);
        }
    }
}