Zaunstatus abfragen

Wenn Sie den aktuellen Status eines Fence abfragen möchten, rufen Sie FenceClient.queryFences() auf und übergeben Sie den Fence-Schlüssel für den abzufragenden Fence.

Im folgenden Beispiel wird FenceClient.queryFences() aufgerufen, um eine FenceStateMap abzurufen, und anschließend wird die FenceStateMap verwendet, um einen FenceStateWert zurückzugeben, der den aktuellen Status, den vorherigen Status und den Zeitpunkt der letzten Aktualisierung des Fence zeigt:

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