Fechtstatus abfragen

Wenn Sie den aktuellen Status eines Zauns abfragen möchten, rufen Sie FenceClient.queryFences() auf und übergeben Sie den Zaunschlüssel für die Abfrage.

Im folgenden Beispiel wird FenceClient.queryFences() aufgerufen, um ein FenceStateMap abzurufen. Dann wird FenceStateMap verwendet, um einen FenceState-Wert zurückzugeben, der den aktuellen Status, den vorherigen Status und die Zeit, zu der der Zaun zuletzt aktualisiert wurde, anzeigt:

protected void queryFence(final String fenceKey) {
    Awareness.getFenceClient(this)
        .queryFences(FenceQueryRequest.forFences(Arrays.asList(fenceKey)))
        .addOnSuccessListener(new OnSuccessListener<FenceQueryResponse>() {
            @Override
            public void onSuccess(FenceQueryResponse response) {
                FenceStateMap map = response.getFenceStateMap();
                for (String fenceKey : map.getFenceKeys()) {
                    FenceState fenceState = map.getFenceState(fenceKey);
                    Log.i(TAG, "Fence " + fenceKey + ": "
                            + fenceState.getCurrentState()
                            + ", was="
                            + fenceState.getPreviousState()
                            + ", lastUpdateTime="
                            + DATE_FORMAT.format(
                            new Date(fenceState.getLastFenceUpdateTimeMillis())));
                }
            }
        })
        .addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Log.e(TAG, "Could not query fence: " + fenceKey);
                return;
            }
        });
}