如何检查围栏键是否注册了 Awareness API?
How to check if a fence key is registered for Awareness API?
我有 2 个关于 Google 意识围栏的问题 API:
- 我们有没有一种方法可以检查具有给定栅栏键的栅栏是否已注册?
- 如果我不小心用同一个fence key注册了2个fence会怎样?
- 要检查围栏是否已注册,请创建
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.
}
}
});
}
- 如果你用同一个fence key注册了2个fence,第二个fence会替换第一个fence。参见 FenceUpdateRequest documentation.
我有 2 个关于 Google 意识围栏的问题 API:
- 我们有没有一种方法可以检查具有给定栅栏键的栅栏是否已注册?
- 如果我不小心用同一个fence key注册了2个fence会怎样?
- 要检查围栏是否已注册,请创建
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.
}
}
});
}
- 如果你用同一个fence key注册了2个fence,第二个fence会替换第一个fence。参见 FenceUpdateRequest documentation.