Gérer les rappels pour les clôtures

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

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

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 provenant des barrières 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 barrière 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);
        }
    }
}