1

我有 2 个关于 Googles Awareness Fences API 的问题:

  1. 我们是否有一种方法来检查具有给定栅栏键的栅栏是否已注册?
  2. 如果我不小心用同一个栅栏键注册了 2 个栅栏,会发生什么?
4

1 回答 1

1
  1. 要检查栅栏是否已注册,请发出 FenceQueryRequest并检查是否FenceStateMap包含栅栏键。

这是示例代码:

protected void queryFence(final String fenceKey) {
    Awareness.FenceApi.queryFences(mGoogleApiClient,
            FenceQueryRequest.forFences(Arrays.asList(fenceKey)))
            .setResultCallback(new ResultCallback<FenceQueryResult>() {
                @Override
                public void onResult(@NonNull FenceQueryResult fenceQueryResult) {
                    if (!fenceQueryResult.getStatus().isSuccess()) {
                        Log.e(TAG, "Could not query fence: " + fenceKey);
                        return;
                    }
                    FenceStateMap map = fenceQueryResult.getFenceStateMap();
                    if (!map.getFenceKeys().contains(fenceKey)) {
                      // Fence is not registered. 
                    }
                }
            });
}
  1. 如果您使用相同的栅栏键注册 2 个栅栏,则第二个栅栏将替换第一个栅栏。请参阅FenceUpdateRequest 文档
于 2017-01-06T10:55:05.727 回答