Zaunrückrufe verwalten

Sobald ein Zaun registriert ist, muss Ihre App einen Callback hinzufügen, der darauf reagiert, wenn der Zaun ausgelöst wird. Dazu können Sie eine BroadcastReceiver-Unterklasse verwenden, um Intent-Zäune zu verarbeiten.

Bevor Sie Callbacks zu einem Zaun hinzufügen, müssen Sie ihn zuerst registrieren.

Unterklasse von BroadcastReceiver erstellen

Das folgende Beispiel zeigt die Klasse FenceReceiver, die BroadcastReceiver erweitert. Die Klasse implementiert die Callback-Methode BroadcastReceiver.onReceive(), mit der alle Intent-Methoden verarbeitet werden, die aus Zäunen stammen, die von Ihrer App erstellt wurden. Wenn eine Intent empfangen wird, wird die Methode FenceState.extract() verwendet, um den Zaunstatus zu erhalten und an den Callback zu übergeben.

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