[英]Google Awareness API with Beacons MAC
我有一些自定义信标用于通过蓝牙LE进行通信。 目前我正在执行LE扫描并检查任何找到的BLE设备的MAC地址是否是我的。
如果我的一个信标在范围内而不是自己实现整个内容,我想使用Google Awareness Fence API来触发。 但是,如果我想创建这样的AwarenessFence
,我只能定义属性
使用TypeFilters时:
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地址吗?
1)有同样的问题并解决了它。
从https://developers.google.com/beacons/proximity/attachments获取带有“namespaceType”字段的附件上下文。 您所需要做的就是将“字符串/类型”中的字符串分割为“名称空间”,并为您的FenceState.TypeFilter分割“类型”。 命名空间应该是您的项目ID形式GoogleDevConsole。
要设置您的信标,请从GooglePlayStore获取“Beacon Tools”(Google Inc.)并找到您的信标,您可以在那里添加附件。
2)据我所知:当触发围栏时,你只能得到围栏键。 所以答案是否定的。 但你可以制作一个getBeaconState() - 请求,看看你附近有哪些信标。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.