Регион мониторинга не работает в iOS, если регион не имеет основных

В моем приложении IOS я пытаюсь контролировать некоторые области маяка по другому параметру следующим образом:

> Метод 1 - Регион с только UUID и идентификатором:

В приведенном выше сценарии я начинаю мониторинг области маяка со следующим кодом, где указаны только uuid и идентификатор.

CLBeaconRegion *region = [[CLBeaconRegion alloc] initWithProximityUUID:convertedUuid identifier:strIdentifier]; 

Метод 2 - Регион с UUID, мажором и идентификатором:

В вышеприведенном сценарии я начинаю мониторинг области маяка следующим методом, где указаны uuid, major и identifier.

CLBeaconRegion  *region = [[CLBeaconRegion alloc] initWithProximityUUID:convertedUuid  major:[self.major intValue] identifier:strIdentifier];

Метод 3 - Регион с большим минором и идентификатором:

В вышеупомянутом сценарии я начинаю мониторинг области маяка следующим методом, где даны все значения uuid, major, minor и identifier.

CLBeaconRegion  *region = [[CLBeaconRegion alloc] initWithProximityUUID:convertedUuid  major:[self.major intValue] minor:[self.minor intValue] identifier:strIdentifier];

Теперь с учетом вышеупомянутых 3 методов я начинаю мониторинг региона со следующего:

[self.locationManager startMonitoringForRegion:region];

К сожалению, только с 3-м методом вызывается маяк входа и выхода делегата. но когда я использую 1-й или 2-й метод, я не смог получить делегат региона входа и выхода.

Примечание: я не запускаю все методы одновременно. я использую только один метод за один раз.

Кто-нибудь может дать какой-либо отзыв или помочь, почему другой метод региона не работает, но работает только третий метод?

1 ответ

Убедитесь в том, что поблизости нет других маяков с таким же бесконтактным идентификатором (метод 1) или с одинаковым соседним идентификатором (метод 2). Когда есть еще один маяк, приложение не получит события выхода, потому что оно все еще находится в том регионе, который определен с помощью бесконтактного идентификатора.

Другие вопросы по тегам