طلب بحث عن حالة السياج

للاستعلام عن الحالة الحالية لسياج جغرافي، اتّصِل بالدالة 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;
            }
        });
}