Administra las devoluciones de llamada de vallas

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

Antes de agregar devoluciones de llamada a una valla, primero debes registrar la cerca.

Cómo crear 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 a partir de vallas creadas por tu app. Cuando se recibe un Intent, se usa el método FenceState.extract() para obtener el estado de 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);
        }
    }
}