1

所以我正在查看规范和文档,看起来一切都与我预期的完全一样,但看起来信标 API 需要在谷歌服务器上注册。我不太明白谷歌服务器的目的是什么?

我希望能够抛出一些带有数据片段的信标,甚至只是一个我可以用来绑定其他东西的唯一标识符,并订阅接近警报。

我猜它与过滤信标有关,你不想与之有任何关系,但似乎如果我有一个明确的应用程序监听它识别的信标,谷歌服务器将不需要在我的基础设施中的位置

4

2 回答 2

1

许多开始使用信标的公司将不得不编写一些关键软件:

  1. 将信标映射到某个位置的表或数据库,可能还有其他一些元数据(123 号巴士站,或商店 #58133 的现金柜台)

  2. 某种 API 允许应用程序在看到信标时获取元数据——应用程序刚刚看到信标 238925823,现在它知道它非常靠近 123 号巴士站。

  3. 能够通过并查看我的任何信标是否有电池耗尽等也很好。

Proximity Beacon API 基本上是为了解决这类问题。没有必要使用它,但是对于那些不想自己实现所有这些的人来说,它就在那里。作为奖励,正如上面@davidgyoung所述,您还可以与其他 Google 服务集成。

于 2015-07-15T11:27:49.963 回答
1

您不需要 Google 服务器来过滤特定的 Eddystone 信标。开源的Android Beacon 库可以让您在没有任何后端服务器的情况下使用Region过滤器来执行此操作,该过滤器可以查找具有特定 Eddystone 命名空间 id(以及可选的实例 id)的信标,如下所示:

// Configure to search for only a single Eddystone
// with a specific namespace Id and instance Id
// You can leave the instance Id null to find all 
// beacons with a given namespace Id.
Identifier myBeaconNamespaceId = Identifier.parse("0x2f234454f4911ba9ffa6");
Identifier myBeaconInstanceId = Identifier.parse("0x000000000001");
Region region = new Region("my-beacon-region", myBeaconNamespaceId, myBeaconInstanceId, null);
mBeaconManager.setMonitorNotifier(this);
try {
   mBeaconManager.startMonitoringBeaconsInRegion(region);
} catch (RemoteException e) {
   e.printStackTrace();
}

你可以在这里看到一个完整的例子

虽然您不需要 Google 服务器平台来过滤信标,但您可以使用它来:

  1. 将元数据绑定到您的信标,检测它们的应用程序可以访问这些信标。这些可能是您自己的应用程序或其他有权访问您的信标的应用程序。

  2. 与 Nearby 或 Google Now 等其他 Google 服务集成。

于 2015-07-15T04:05:39.407 回答