Запрос API Awareness для Fence State

Я пытаюсь получить состояние забора с помощью API осведомленности. Вот документация об этом. Но... При использовании:

Awareness.FenceApi.queryFences

Я вижу, что его устарел, и вместо этого мне нужно использовать:

Awareness.getFenceClient

Может ли кто-нибудь привести пример, как получить статус забора с помощью getFenceClient?


person Dim    schedule 03.06.2018    source источник


Ответы (1)


Понятно:

Awareness.getFenceClient(context).queryFences(FenceQueryRequest.forFences(Arrays.asList(key)))
            .addOnSuccessListener(new OnSuccessListener<FenceQueryResponse>() {

                @Override
                public void onSuccess(FenceQueryResponse fenceQueryResponse) {

                    FenceStateMap map = fenceQueryResponse.getFenceStateMap();

                    for (String fenceKey : map.getFenceKeys()) {
                        FenceState fenceState = map.getFenceState(fenceKey);
                        Log.i(TAG, "Fence " + fenceKey + ": "
                                + fenceState.getCurrentState()
                                + ", was="
                                + fenceState.getPreviousState());
                    }
                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {

                    Log.d(TAG, "Failed: " + e);
                }
            });
person Dim    schedule 07.06.2018