我正在尝试使用Firebase,附近消息和iBeacons实施信标扫描。我已经关注如何设置信标并启动了处理消息的服务的Googles文档。但我得到的唯一回应是:
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);
这似乎是我的命名空间的一个问题,但我无法弄清楚它是什么。
答案 0 :(得分:2)
使用IBeaconId.from(Message)来解析您的邮件。 另请参阅https://developers.google.com/nearby/messages/android/get-beacon-messages有关如何使用信标的端到端示例。
答案 1 :(得分:0)
您确定您的命名空间是否正确?特别是“/ room”部分?我会说它应该是“project-name-1234”。
无论如何,我会尝试包含项目中的所有消息,并查看您获得的命名空间:
MessageFilter messageFilter = new MessageFilter.Builder()
.includeIBeaconIds(UUID, major, minor)
.includeAllMyTypes()
.build();
另外请注意,信标必须在您在应用中连接的同一Google项目中注册。命名空间和类型的匹配是不够的。