Даже у меня был этот вопрос сегодня во время создания подобного приложения. Оповещение, когда два пользователя / друзья находятся рядом друг с другом - Android Proximity
потратив пару часов на размышления, я подумал, как лучше это сделать:
1) Создайте SharedPreference / DB, в которой хранятся последние координаты устройства, которое также было обновлено на сервере.
2) Создать службу, которая будет запускаться раз в 15 минут с запросом текущего местоположения.
3) Если текущее местоположение совпадает с последним местоположением, полученным из SharedPreference и поблизости от него (зависит от того, сколько вы даете 30 футов или более), тогда пользователь находится в том же месте , поэтому не загружайте координаты на сервер.
4) Если пользователь не находится в непосредственной близости или последнее местоположение не соответствует текущему местоположению, загрузите координаты на сервер.
5) После загрузки координат на сервер тоже обновите SharedPreference ..
6) После загрузки верните ответные данные о пользователях с сервера, которые находятся рядом с такими же координатами. Пользователь получит уведомление, если кто-то вокруг него ..