Gestisci callback recinzioni

Una volta registrato un recinto, la tua app deve aggiungere un callback per rispondere quando il recinto viene attivato. Puoi farlo utilizzando una sottoclasse di BroadcastReceiver per gestire i metodi Intent dei recinti.

Prima di aggiungere i callback a un recinto, devi prima registrarlo.

Creare una sottoclasse di BroadcastReceiver

L'esempio seguente mostra la classe FenceReceiver, che estende BroadcastReceiver. La classe implementa il BroadcastReceiver.onReceive() metodo di callback per gestire tutti i Intent metodi che hanno origine dai recinti creati dalla tua app. Quando viene ricevuto un Intent, il FenceState.extract() metodo viene utilizzato per ottenere lo stato del recinto e passarlo al callback.

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);
        }
    }
}