Можно ли найти другие близлежащие телефоны?

Я пишу приложение для Android, которое я хотел бы в конечном итоге портировать на iOS и Windows Mobile (хотя я сейчас абсолютно ничего о них не знаю). Мне бы хотелось, чтобы мое приложение могло находить другие телефоны в пределах определенного радиуса (возможно, 20-30 футов), на которых также установлена игра, чтобы пользователи могли взаимодействовать с другими в своем текущем физическом пространстве. Возможно ли это, и если да, то как?

Я планирую приложение, требующее подключения к Интернету, поэтому моей первой мыслью было использовать GPS, как описано вiOS найти другие устройства поблизости (местоположения GPS), но это потребовало бы постоянной передачи данных на сервер для обновления местоположения пользователя с использованием как полосы пропускания, так и батареи (не говоря уже о ресурсах сервера). Похоже, что GPS требует некоторого времени, чтобы получить какое-либо точное исправление, и хотя я не буду хранить исторические данные, я не ожидаю, что пользователи будут доверять мне такую частную информацию (а они не должны!)

Я знаю, что существуют запатентованные технологии, такие как Sony NFC, но это слишком узкая сфера, чтобы использовать их для приложений, которые я бы хотел не зависеть от устройств и ОС. Какие еще есть варианты? Предполагая, что пользователь желает дать приложению соответствующие разрешения, какие другие методы могут позволить одному устройству находить другое поблизости на расстоянии 10-15 метров, что целесообразно для большой (более миллиона) пользовательской базы? Является ли HTML5 Geolocation лучшим путем? Или GPS мой единственный реальный вариант?

Я нашелИспользуйте Android GPS для обнаружения и подключения к другим телефонамНо надеялся, что последние несколько лет открыли дополнительные возможности.

ОБНОВИТЬ

Спасибо за все ответы до сих пор. Чтобы ответить на некоторые вопросы, заданные в комментариях и ответах, я подумал, что опишу, как я ожидаю взаимодействия приложений / устройств.

У всех пользователей, устанавливающих это приложение, будет работать агент в фоновом режиме, чтобы обновлять текущую геолокацию и прослушивать эхо-запросы. Любой пользователь может открыть полную программу и отправить быстрый запрос всем остальным пользователям поблизости. Если я иду по маршруту центрального сервера, то сервер отвечает на этот запрос списком близлежащих имен пользователей. Затем пользователь может выбрать один из них, чтобы инициировать соединение, и в этом случае целевое устройство издает звук, чтобы уведомить о запросе на соединение.

Оттуда достаточно легко справиться с взаимодействием между двумя устройствами. Нахождение этих соседних пользователей является камнем преткновения для меня.

Ответы на вопрос(2)

Ваш ответ на вопрос