للاستعلام عن الحالة الحالية لسياج، يمكنك استدعاء
FenceClient.queryFences() وتمرير مفتاح السياج للسياج المطلوب الاستعلام عنه.
يستدعي المثال التالي FenceClient.queryFences() للحصول على FenceStateMap،
ثم يستخدم FenceStateMap لعرض قيمة
FenceState
لإظهار الحالة الحالية والحالة السابقة والوقت الذي تم فيه
تحديث السياج الجغرافي آخر مرة:
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;
}
});
}