펜스 상태 쿼리

펜스의 현재 상태를 쿼리하려면 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;
            }
        });
}