Я пытаюсь реализовать приложение для мобильного телефона, которое поднимает флаг, если два пользователя приближаются друг к другу в физическом мире.
Я ищу решение, которое не требует, чтобы приложения были активно открыты на телефоне пользователя, чтобы иметь возможность сделать это определение и поднять флаг.
Это возможно? Возможно, по Bluetooth или, возможно, с помощью данных GPS и времени, загруженных с каждого телефона, и чтобы сервер определял, были ли пользователи достаточно близко друг к другу?
Я ищу точность в пределах <20 футов.
Я не думаю, что вы можете сделать это без поддержки ОС. Платформа Apple Core Location позволяет настроить iPhone для прослушивания iBeacon, пробуждения телефона и запуска вашего приложения в фоновом режиме, если он его обнаружит, но вы не можете заставить iPhone транслировать сигнал iBeacon, когда телефон заблокирован, а ваш приложение приостановлено. Apple может, а вы нет.
Я считаю, что базовая структура BLE, на которой основаны iBeacons, имеет те же ограничения.
Apple сотрудничала с представителями органов здравоохранения, чтобы сделать то, что вы описываете, для отслеживания воздействия COVID19. Вы устанавливаете приложение на свой телефон, и оно использует BLE для передачи идентификатора и прослушивания других пользователей, запускающих приложение, и записывает других пользователей приложения, которых оно видит. Если кто-то заболевает COVID, есть способ отправить уведомление всем, кто находился в непосредственной близости от зараженного человека.
Вероятно, это можно было бы сделать, используя записанные данные GPS и сервер, но это потребовало бы батареи, сети и вычислительной мощности. (Я предполагаю, что это не будет соответствовать вашим требованиям, поскольку приложение должно быть активным в фоновом режиме, а GPS должен быть постоянно включен.) GPS потребляет много энергии, и если вы не используете GPS постоянно вы бы пропустили встречи на желаемом расстоянии < 20 футов. Если бы вы собирали постоянные данные GPS, вам нужно было бы загрузить их все, а затем выполнить ГРУППУ пакетной обработки, чтобы найти совпадения с близостью. Вы хотели бы сделать первый проход, где вы используете грубые вычисления с довольно большим порогом расстояния, чтобы отбросить данные, когда поблизости не было других устройств, а затем второй проход на значительно меньшем наборе данных. ДАЖЕ при таком подходе это будет означать МНОГО числовых вычислений.
@davidgyoung знаете ли вы какие-нибудь новые трюки, которые делают это возможным из стороннего приложения? Вы мой помощник по iBeacon и другим вопросам iOS BLE, и если кто-то знает о новом способе заставить iPhone транслировать сигнал приближения из фона, то это будете вы.
Нет простого способа. Эти пользователи знакомы друг с другом? Являются ли они анонимными по отношению друг к другу? Если вы ищете отслеживание COVID, вы должны знать, что Apple будет принимать такие приложения только от государственных учреждений. Посмотреть можно в Вестнике ; это может помочь