Могут ли несколько приложений обрабатывать события ibeacon

Я работаю над доказательством концепции общественной организации с участием Ibeacons. Я очень мало знаю о разработке IOS.

Основная идея заключается в том, что у организации сообщества будет приложение, и у различных организаций, которые мы будем развертывать Ibeacons, также есть приложение. возможно ли в IOS установить приоритет приложений, обрабатывающих определенные события маяка.

Итак, скажем, если у пользователя установлено приложение Business X и установлено событие маяка от маяка, связанного с Business X, тогда приложение Business X обработает это событие. В противном случае приложение Community обработает событие?

Я знаю, что в Android вы можете установить приоритет для обработки намерений. Я не уверен, что это можно сделать с помощью Ibeacon в IOS или Android.


person gsueagle2008    schedule 02.03.2014    source источник
comment
Можете ли вы помочь мне, как сканировать с использованием нескольких UUID в Android. У меня их 10 и любой можно отсканировать   -  person Tombeau    schedule 24.04.2014


Ответы (2)


Маяки или «события» маяка не принадлежат конкретному приложению. Маяки передают идентификатор, состоящий из трех значений — UUID, основного и дополнительного значений. Эти три значения могут использоваться вашими приложениями для настройки области мониторинга. Для каждого приложения вы можете отслеживать один или несколько регионов (групп маяков), о которых ему необходимо знать. Несколько приложений могут отслеживать одни и те же маяки. Любая приоритизация событий обнаружения маяков и ранжирования должна обрабатываться в ваших отдельных приложениях.

Например, учитывая эти три маяка:

  • BeaconA: UUID=DCCABFE0-A25D-11E3-A5E2-0800200C9A66 Major=293 Minor=1
  • BeaconB: UUID=DCCABFE0-A25D-11E3-A5E2-0800200C9A66 Major=293 Minor=2
  • BeaconC: UUID=DCCABFE0-A25D-11E3-A5E2-0800200C9A66 Major=674 Minor=1

Ваше приложение сообщества может отслеживать все маяки с UUID DCCABFE0-A25D-11E3-A5E2-0800200C9A66 (3 маяка). Приложение Business X может отслеживать некоторые из них, отслеживая маяки с UUID DCCABFE0-A25D-11E3-A5E2-0800200C9A66 и основным значением 293 (2 маяка). В этом случае, если BeaconA был обнаружен устройством, события iBeacon будут инициированы для обоих приложений, поскольку BeaconA находится в регионах, отслеживаемых обоими. Однако, если BeaconC будет обнаружен устройством, только приложение Community будет уведомлено, поскольку этот маяк находится за пределами контролируемого региона Business X.

Таким образом, в iOS по крайней мере каждое приложение будет отслеживать маяки независимо, и если у вас есть один iBeacon, за которым наблюдают несколько приложений, все эти приложения будут уведомлены, и тогда вам потребуется собственная логика для обработки событий.

person damoclarke    schedule 02.03.2014

Да, вы можете сделать это на iOS, но есть вещи, которые вы должны обойти:

  1. Обнаружения iBeacon всегда отправляются во все приложения iOS, которые их ищут. Нет встроенной концепции приоритета или обработки событий до того, как у других приложений появится шанс.

  2. Приложения обычно помещаются в «песочницу», чтобы они не обменивались данными, хотя есть несколько способов обойти это.

Из-за (1) все приложения будут получать уведомления iBeacon. Но вы можете запрограммировать приложение сообщества, чтобы оно игнорировало события, если эти другие приложения могут сообщить ему, что они будут обрабатывать или обрабатывали события для одного или нескольких iBeacon. Два способа обработки этого уведомления в пределах (2) — это использовать либо веб-службу, либо настраиваемую схему URL для обмена данными. Второй может быть самым простым для вашего случая.

Это будет работать следующим образом:

  1. Приложение Business X запускается и начинает мониторинг iBeacons с UUID 2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6.
  2. Приложение Business X вызывает пользовательскую схему URL-адресов communityIBeaconApp://start-ignoring?uuid=2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6&app=BusinessX.
  3. Приложение iBeacon сообщества получает вызов пользовательского URL-адреса от (2) и знает, что теперь оно должно игнорировать все iBeacon с UUID 2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6, поскольку приложение Business X будет их обрабатывать.
  4. Когда приложение Business X прекращает отслеживать эти iBeacons, оно должно сделать еще один вызов communityIBeaconApp://stop-ignoring?uuid=2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6&app=BusinessX.
  5. Приложение iBeacon сообщества получает вызов пользовательского URL-адреса от (3) и перестает игнорировать эти iBeacon.

Вы можете прочитать руководство по созданию пользовательских схем URL-адресов на iOS здесь.

person davidgyoung    schedule 03.03.2014