На эту проблему нет простого ответа.
Bluetooth имеет 2 варианта: «обычный» Bluetooth, используемый для устройств громкой связи, наушников и т. п., и BLE (Bluetooth с низким энергопотреблением).
Обычные устройства Bluetooth должны быть сопряжены. (Я менее знаком с обычным bluetooth, чем с BLE, поэтому отнеситесь к моему объяснению этого бита с долей скептицизма.) Чтобы быть в паре, они должны быть переведены в «обнаруживаемый» режим, который транслирует их идентификатор. Это разряжает батарею и делается ненадолго. Это не «всегда включенное» решение.
BLE имеет диапазон до 60 метров, поэтому он должен удовлетворить ваши потребности в этом отношении.
Устройства BLE могут «рекламироваться» как «периферийные устройства» в течение длительного времени. Другие устройства Bluetooth могут действовать как «центральные» и запрашивать уведомление при обнаружении определенных периферийных устройств. Я не уверен, можно ли заставить устройство iOS рекламироваться (транслироваться) как периферийное устройство BLE, когда оно находится в фоновом режиме и/или если устройство заблокировано, но оно, безусловно, будет рекламироваться во время работы. Я почти уверен, что вы можете зарегистрироваться, чтобы получать уведомления, когда вы обнаружите определенное периферийное устройство BLE в фоновом режиме, но не положительно.
iBeacons — это особое использование BLE с некоторыми дополнительными ограничениями и некоторыми дополнительными возможностями. iBeacon — это очень простой передатчик, который периодически (обычно раз в секунду) отправляет UUID плюс основное и вспомогательное значение, а также значение калибровки мощности сигнала. Вы не можете добавлять какие-либо другие данные к передаче iBeacon. iOS может действовать как передатчик iBeacon только тогда, когда приложение находится на переднем плане. Если ваше приложение переходит в фоновый режим, оно прекращает передачу. Период.
Однако вы можете прослушивать сигналы iBeacon даже в фоновом режиме. И, если вы зарегистрировались в качестве прослушивателя iBeacon, и система завершает работу вашего приложения из-за нехватки памяти, система по-прежнему прослушивает эти маяки от вашего имени. Если iOS обнаружит маяк, который вы слушаете, вы будете перезапущены, если это необходимо, и получите уведомление в фоновом режиме. Затем вы можете опубликовать локальное уведомление, чтобы привлечь внимание пользователя.
iBeacons, вероятно, ваш лучший выбор, но вам нужно, чтобы ваши пользователи активно запускали ваше приложение на переднем плане для передачи сигнала. Это довольно быстро разрядит батарею вашего пользователя.
person
Duncan C
schedule
24.01.2014