Bir çitin mevcut durumunu sorgulamak için FenceClient.queryFences()
yöntemini çağırın ve çitin sorgulanması için çit anahtarını iletin.
Aşağıdaki örnekte FenceStateMap
almak için FenceClient.queryFences()
çağrılır ve ardından geçerli durumu, önceki durumu ve çitin son güncellenme zamanını göstermek için bir FenceState
değeri döndürmek için FenceStateMap
kullanı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;
}
});
}