2014-03-02 27 views
0

我正在研究涉及Ibeacons的社区组织的概念证明。我对IOS开发知之甚少。多个应用程序可以处理ibeacon事件

其基本思想是社区组织将有一个应用程序,我们将部署Ibeacons的各种实体也有一个应用程序。 IOS有可能设置应用程序处理特定信标事件的优先级。

因此可以说,如果用户安装了Business X的应用程序,并且安装了与Business X关联的信标中的Beacon事件,则Business X的应用程序将处理该事件。否则社区应用程序将处理该事件?

我知道在Android中,您可以设置意图处理的优先级。我不确定这是否可以在IOS或Android中使用Ibeacons来完成。

+0

你能帮助我如何在Android中使用多个UUID进行扫描。 我有10个,任何人都可以扫描 – Tombeau

回答

1

信标或信标'事件'不属于特定的应用程序。信标广播由三个值组成的标识符 - UUID和主要和次要值。您的应用可以使用这三个值来设置监控区域。对于每个应用程序,您可以监视一个或多个需要了解的区域(信标分组)。多个应用程序可以监视相同的信标。任何信标发现和测距事件的优先级都需要在您的个人应用程序中处理。

例如给定的这三个信标:

  • BeaconA:UUID = DCCABFE0-A25D-11E3-A5E2-0800200C9A66主要= 293次要= 1
  • BeaconB:UUID = DCCABFE0-A25D-11E3-A5E2 -0800200C9A66主要= 293 =轻微2
  • BeaconC:UUID = DCCABFE0-A25D-11E3-A5E2-0800200C9A66主要= 674 =小1个

你的社区应用程序可以监控所有信标与UUID DCCABFE0-A25D -11E3-A5E2-0800200C9A66( 3个信标)。 Business X的应用程序可以通过使用UUID DCCABFE0-A25D-11E3-A5E00800200C9A66和主值293(2个信标)监视信标来监视其中的一部分。在这种情况下,如果BeaconA被设备检测到,则两个应用都会触发iBeacon事件,因为BeaconA在两个监控区域内。但是,如果BeaconC被设备发现,只有社区应用程序才会被通知,因为此信标不属于Business X的受监控区域。

因此,在iOS中至少每个应用程序都会独立监控信标,如果您有一个由多个应用程序监控的iBeacon,则所有这些应用程序都会收到通知,然后您需要自己的逻辑来处理事件。

0

是的,你可以做到这一点在iOS上,但也有东西你必须解决:

  1. iBeacon显示检测结果总是被发送给正在寻找相关的所有iOS应用。在其他应用程序有机会之前,没有内置的优先级或处理事件的概念。

  2. 应用程序通常是“沙箱”,以防止共享数据,但有几种解决方法。

由于(1),所有应用程序都将获得iBeacon通知。但是,如果社区应用程序可以通过其他应用程序告知他们将处理或处理一个或多个iBeacons的事件,那么您可以编写社区应用程序以忽略事件。在(2)的范围内处理此通知的两种方法是使用Web服务或自定义URL方案来交换数据。第二个对你来说可能最简单。

它的工作方式是这样的:

  1. 商业X应用程序启动,并iBeacons开始监测与UUID 2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6
  2. 商业X应用程序,使通话到communityIBeaconApp的自定义URL方案://启动忽略UUID = 2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6 &应用= BusinessX
  3. 社区iBeacon显示应用程序从接收自定义URL调用(2),现在知道它应该因为Business X应用会处理它们,所以忽略所有使用UUID 2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6的iBeacons。
  4. 当业务应用X停止监视这些iBeacons,应该拨打另一个电话到communityIBeaconApp://停忽略UUID = 2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6 &应用= BusinessX
  5. 社区iBeacon显示应用程序接收从(3)和停止忽视这些iBeacons

自定义URL调用您可以阅读关于iOS上here构建自定义URL方案的教程。

相关问题