Bir çitin mevcut durumunu sorgulamak için FenceClient.queryFences() işlevini çağırın ve sorgulanacak çitin anahtarını iletin.
Aşağıdaki örnekte, FenceClient.queryFences() çağrılarak bir FenceStateMap alınır ve ardından FenceStateMap kullanılarak mevcut durumu, önceki durumu ve çitin en son güncellendiği zamanı gösteren bir FenceState değeri döndürülür:
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;
}
});
}