我正在尝试使用Firebase,附近消息和iBeacon实施信标扫描。我遵循了Google文档中有关如何设置信标的文档,并启动了一个处理消息的服务。但是我得到的唯一答复是:
Message received: Message{namespace='__reserved_namespace', type='__i_beacon_id', content=[20 bytes]}
我的命名空间类型为project-name-1234/room
,数据为test
。我订阅这样的附近消息:
MessageFilter messageFilter = new MessageFilter.Builder()
.includeIBeaconIds(UUID, major, minor)
.includeNamespacedType("project-name-1234/room", "test")
.build();
SubscribeOptions options = new SubscribeOptions.Builder()
.setStrategy(Strategy.BLE_ONLY)
.setFilter(messageFilter)
.build();
Nearby.Messages.subscribe(mGoogleApiClient, getPendingIntent(), options);
这似乎是我的命名空间的问题,但我不知道它是什么。
使用IBeaconId.from(Message)解析您的消息。另请参见https://developers.google.com/nearby/messages/android/get-beacon-messages,以获取有关如何使用信标的端到端示例。
您确定您的名称空间正确吗?尤其是“ /房间”部分?我会说它应该是“ project-name-1234”。
无论如何,我将尝试包含项目中的所有消息,并查看所获得的命名空间:
MessageFilter messageFilter = new MessageFilter.Builder()
.includeIBeaconIds(UUID, major, minor)
.includeAllMyTypes()
.build();
还请注意,信标必须与您在应用程序中进行连接时必须在同一Google项目中注册。名称空间和类型的匹配不够。