Zaun-Callbacks verwalten

Nachdem ein Fence registriert wurde, muss Ihre App einen Callback hinzufügen, um zu reagieren, wenn der Fence ausgelöst wird. Dazu können Sie eine Unterklasse von BroadcastReceiver verwenden, um Intent-Methoden aus Fences zu verarbeiten.

Bevor Sie einem Geofence Callbacks hinzufügen können, 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(), um alle Intent-Methoden zu verarbeiten, die von Zäunen stammen, die von Ihrer App erstellt wurden. Wenn ein Intent empfangen wird, wird die Methode FenceState.extract() verwendet, um den Zaunstatus abzurufen 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);
        }
    }
}