iOS: Обнаружить маяк, когда маяк находится в спящем режиме? - PullRequest
0 голосов
/ 27 февраля 2020

Я прочитал несколько статей, и все они говорят об обнаружении маяка, когда вы находитесь в диапазоне, и вы не можете видеть маяк, не зная его UUID. CBCentralManagerDelegate дает вам возможность обнаружить маяк, только когда он активен. Есть ли способ обнаружить маяк, когда он находится в режиме ожидания, но все еще вещает?

1 Ответ

1 голос
/ 27 февраля 2020

«Спящий режим» не является стандартной концепцией, когда речь идет о маяках с поддержкой Bluetooth. Некоторые производители маяков имеют собственные решения, которые изменяют поведение своих аппаратных маяков, когда они неподвижны в течение определенного периода времени. Как правило, это заставляет такие маяки полностью прекращать рекламу до тех пор, пока движение не будет обнаружено, и реклама возобновляется.

Три возможности:

  1. Если производитель оборудования маяка внедрил спящий режим как описано выше, этот маяк вообще не будет рекламироваться в спящем режиме, и его невозможно обнаружить с помощью любых API на iOS.

  2. Если производитель оборудования маяка реализовал режим ожидания другим способом, так что он по-прежнему объявляет те же пакеты (возможно, с более медленным интервалом?), тогда его можно будет обнаружить с помощью тех же API, которые используются для его обнаружения, когда он активен.

  3. Если производитель оборудования маяка внедрил спящий режим так, что он объявляет разные пакеты в спящем режиме, то для обнаружения могут потребоваться разные API. Но нет способа узнать, как это сделать без документации от производителя.

Итог: вы должны обратиться к документации, предоставленной вашим производителем маяков , чтобы увидеть, как реализован спящий режим (1-3 выше), и знать, как определить, когда именно в этом режиме.

...