Czy można znaleźć inne pobliskie telefony?

Piszę aplikację na Androida, którą chciałbym ostatecznie przenieść na iOS i Windows Mobile (choć teraz nie wiem o nich absolutnie nic). Chciałbym, aby moja aplikacja mogła znaleźć inne telefony w określonym promieniu (może 20-30 stóp), które również mają zainstalowaną grę, tak aby użytkownicy mogli wchodzić w interakcje z innymi w ich obecnej przestrzeni fizycznej. Czy to możliwe, a jeśli tak, to w jaki sposób?

Planuję aplikację wymagającą połączenia z Internetem, więc moją pierwszą myślą było użycie GPS, jak opisano wiOS Znajdź inne urządzenia w pobliżu (lokalizacje GPS), ale wymagałoby to ciągłego przesyłania danych do serwera w celu aktualizacji lokalizacji użytkownika przy użyciu zarówno przepustowości, jak i baterii (nie wspominając o zasobach serwera). Wydaje się, że GPS potrzebuje trochę czasu, aby uzyskać jakąkolwiek dokładną poprawkę, i mimo że nie zapisywałbym danych historycznych, nie oczekiwałbym, że użytkownicy zaufają mi tego rodzaju prywatnymi informacjami (i nie powinni!)

Wiem, że istnieją zastrzeżone technologie, takie jak NFC firmy Sony, ale jest to zbyt wąski cel, aby można go było wykorzystać w aplikacji, którą chciałbym być agnostycznym urządzeniem i systemem operacyjnym. Jakie są inne opcje? Zakładając, że użytkownik jest gotów udzielić aplikacji odpowiednich uprawnień, jakie inne metody mogłyby pozwolić jednemu urządzeniu znaleźć inne pobliskie, w zasięgu 10-15 metrów, co jest praktyczne dla dużej (milion +) bazy użytkowników? Czy geolokalizacja HTML5 jest lepszą ścieżką? Czy GPS jest moją jedyną realną opcją?

ZnalazłemUżyj Android GPS do wykrywania i łączenia się z innymi telefonami, ale miał nadzieję, że ostatnie kilka lat otworzyło dalsze możliwości.

AKTUALIZACJA

Dziękuję za wszystkie dotychczasowe odpowiedzi. Aby odpowiedzieć na niektóre pytania zadane w komentarzach i odpowiedziach, pomyślałem, że opiszę, jak oczekuję interakcji aplikacji / urządzeń.

Wszyscy użytkownicy, którzy zainstalują tę aplikację, będą mieli agenta działającego w tle, aby zaktualizować bieżącą geolokalizację i nasłuchiwać pingów. Każdy użytkownik może otworzyć pełny program i wysłać szybką prośbę do wszystkich innych użytkowników w pobliżu. Jeśli przejdę na trasę serwera centralnego, serwer odpowie na to żądanie listą pobliskich nazw użytkowników. Użytkownik może następnie wybrać jedną z nich, aby zainicjować połączenie, w którym to przypadku urządzenie docelowe wydaje dźwięk, aby powiadomić o żądaniu połączenia.

Stamtąd łatwo jest obsługiwać interakcję między dwoma urządzeniami. Znalezienie tych pobliskich użytkowników to dla mnie punkt wyjścia.

questionAnswers(2)

yourAnswerToTheQuestion