Регион мониторинга не работает в 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). Когда есть еще один маяк, приложение не получит события выхода, потому что оно все еще находится в том регионе, который определен с помощью бесконтактного идентификатора.