【问题标题】:Detect beacon without hardcode无需硬编码即可检测信标
【发布时间】:2015-02-03 12:11:30
【问题描述】:

我想知道:

当我们使用应用商店进入商店时,我们会收到例如通知。

但是如果信标关闭了,并且被另一个信标、不同的 UUID 等替换了怎么办?信标的 UUID/Major/Minor 值是否没有被编码,而是在服务器上的数据库中?它是如何获取的?

谢谢你

【问题讨论】:

    标签: android ios server ibeacon hardcode


    【解决方案1】:

    iBeacon 的 UUID 与其 MAC 地址没有任何关系。它是信标所有者分配给信标的值。一些信标供应商具有特定的 UUID 或 UUID 范围,而其他信标供应商允许使用任何 UUID。

    如果某个特定的信标失败,那么替换可能会配置相同的 UUID。

    当应用检测到特定信标时,它需要在应用或服务器上引用某个数据库,这为特定 UUID/主要/次要组合赋予“意义”,因此该数据库可能是更新以反映新硬件,但这不太可能比简单地使用相同的值配置替换硬件

    【讨论】:

    • 是的,但我的意思是,为了检测信标,必须要有 uuid,所以要么是条形码,要么是从数据库中获取的?
    【解决方案2】:

    最好不要在应用中对信标标识符进行硬编码。您可以在启动时构建您的应用程序,它会联系 Web 服务以下载要搜索的标识符列表。您可以自己构建或使用现成的服务,例如我公司的ProximityKit,正是这样做的。

    当然,如果您依赖信标检测来启动您的应用,那么如果信标 ID 提前更改,您的应用将不会自动启动以下载新的信标标识符。用户必须手动启动才能获取新列表。

    有几种方法可以解决这个问题:

    1. 设置替换信标上的标识符,使其与旧信标相同。
    2. 如果您知道无法设置标识符,请扩大自动启动的信标区域过滤器,使其匹配各种信标标识符。在 iOS 上,您可以搜索具有共享 UUID 的所有信标。在 Android 上,无论标识符如何,您都可以搜索所有信标。

    【讨论】:

      【解决方案3】:

      当您初始化 Beacon Region 时,您至少需要识别 UUID,它要么在应用程序中硬编码,要么可以放在服务器上,并且应该在调用初始化 Beacon Region 之前从服务器检索。

      注意:您应该拥有所有信标 UUID、主要和次要信标的副本以供将来使用

      但假设您的 Beacon 出现故障,那么就有备用计划。

      请按照以下步骤操作:

      1.安装Estimote-iOS或安卓应用 2.将新的信标放在您的设备附近,并在 estimote 应用程序中开始测距信标。 3.然后您需要在您的应用程序中使用您的云帐户登录并配置新的信标(即编辑您的信标的UUID。)您甚至可以编辑主要,次要等 4.保存这些设置,您的新信标已配置好并可以使用了。

      快乐编码:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-22
        • 2018-03-31
        • 1970-01-01
        • 2018-03-20
        相关资源
        最近更新 更多