Zaun-Callbacks verwalten

Sobald ein Geofence registriert wurde, muss Ihre App einen Rückruf hinzufügen, um zu reagieren, wenn der Geofence ausgelöst wird. Dazu können Sie eine Unterklasse von BroadcastReceiver verwenden, um Intent-Methoden von Zäunen zu verarbeiten.

Bevor Sie einem Zaun Rückruffunktionen hinzufügen können, müssen Sie ihn zuerst registrieren.

Unterklasse von BroadcastReceiver erstellen

Das folgende Beispiel zeigt die Klasse FenceReceiver, die von BroadcastReceiver abgeleitet ist. Die Klasse implementiert die Rückrufmethode BroadcastReceiver.onReceive(), um alle Intent-Methoden zu verarbeiten, die von von Ihrer App erstellten Begrenzungen stammen. Wenn eine Intent empfangen wird, wird die Methode FenceState.extract() verwendet, um den Begrenzungsstatus abzurufen und an den Rückruf weiterzugeben.

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