我有一些用于通过蓝牙 LE 进行通信的自定义信标。目前我正在执行 LE 扫描并检查任何找到的 BLE 设备的 MAC 地址是否是我的设备之一。
如果我的一个信标在范围内而不是我自己实现整个东西,我想使用 Google Awareness Fence API 来触发。但是,如果我想创建这样的AwarenessFence
,我只能定义属性
- 命名空间,
- 类型
使用类型过滤器时:
final BeaconState.TypeFilter typeFilter = BeaconState.TypeFilter.with("abc", "def");
final AwarenessFence beaconFence = BeaconFence.found(typeFilter);
Awareness.FenceApi.updateFences(
client,
new FenceUpdateRequest.Builder()
.addFence(BEACON_FENCE, beaconFence, pi)
.build())
.setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(@NonNull Status status) {
if (status.isSuccess()) {
Log.i(TAG, "Fence was successfully registered.");
} else {
Log.e(TAG, "Fence could not be registered: " + status);
}
}
});
问题:
命名空间和类型是什么意思?这些属性是否已赋予所有 BLE 设备,我可以从我的信标中以某种方式读取它们吗?或者这是否是 Eddystone 特有的?
我可以将 Awareness API 与我的信标的 MAC 地址一起使用吗?