Gérer les rappels pour les clôtures

Une fois une barrière géographique enregistrée, votre application doit ajouter un rappel pour répondre lorsque la barrière est déclenchée. Pour ce faire, vous pouvez utiliser une sous-classe de BroadcastReceiver pour gérer les méthodes Intent à partir des clôtures.

Avant d'ajouter des rappels à une clôture, vous devez d'abord enregistrer la clôture.

Créer une sous-classe de BroadcastReceiver

L'exemple suivant montre la classe FenceReceiver, qui étend BroadcastReceiver. La classe implémente la méthode de rappel BroadcastReceiver.onReceive() pour gérer toutes les méthodes Intent qui proviennent des clôtures créées par votre application. Lorsqu'un Intent est reçu, la méthode FenceState.extract() est utilisée pour obtenir l'état de la clôture et le transmettre au rappel.

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