2015-07-08 1 views
2

Я создаю приложение с пользовательским интерфейсом, который получает список ближайших пользователей, чтобы помочь связать людей с одинаковыми интересами. Я знаю, что это не новая концепция, такие приложения, как Grindr, делают именно то, что я пытаюсь достичь в этом. Как мне получить информацию о профиле приложения с телефона и отобразить его на другом телефоне с тем же приложением? есть ли для этого веб-сервер?Как получить список ближайших пользователей в приложении для Android?

Чтобы проиллюстрировать то, что пользователь увидит: USER A отображает свой персонаж, написанный автором, и изображение, находящееся поблизости, USER B находится рядом и видит ПОЛЬЗОВАТЕЛЬ А на экране сетки главной страницы.

Как пользователь USER B может получить эту информацию на свой телефон? Каковы наилучшие практики в этом?

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

ответ

3

Вам необходимо, чтобы все пользователи загружали свое текущее местоположение через веб-службу каждые несколько минут. Храните это в базе данных (используя UPSERT). Затем, когда пользователь хочет искать других близлежащих пользователей, вы просматриваете базу данных для всех пользователей этого диапазона и возвращаете этот список. Это поможет использовать базу данных с поддержкой ГИС, такую ​​как Postgres, с расширением PostGis, но это необязательно.

Наверное, неплохо вставить временную метку в базу данных с местоположением, чтобы вы могли исключить слишком старые результаты.

+0

Как это работает с фотографиями профиля? так же? – castaway2000

+0

Вам нужно будет иметь свои фотографии профиля где-то в вашей системе. Когда вы отправляете им список пользователей, вы отправляете им некоторые метаданные на имя пользователя, идентификатор (я предполагаю, что все они имеют идентификатор в вашей системе) и т. Д. Одной из этих частей данных будет URL-адрес их фотографии. –

+0

Звучит неплохо. спасибо за руководство и помощь. – castaway2000

1

Если вы пытаетесь сделать небольшое расстояние и не хотите хранить данные на сервере, вы можете использовать wifi-direct для передачи данных между пользователями ... Однако это может привести к утечке пользователей. Чтобы избежать этого, вы можете использовать bluetooth low энергии для первоначального обнаружения, а затем wifi-direct для связи ...

2

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

+0

Я собираюсь сделать это, и я ценю заботу. – castaway2000

1

Google только что анонсировал новый API-интерфейс, который делает именно то, что вы хотите. Он был включен в Google Play services 7.8. Here вы можете найти подробную запись в блоге в блоге Google, где они объясняют это подробно, и here у вас есть справочная страница.

Я изучаю, можно ли настроить расстояние поиска.

+0

Знаете ли вы, насколько далеко расстояние будет использовать DISTANCE_TYPE_DEFAULT? И является ли это лучшей стратегией для самого длинного расстояния? –

Смежные вопросы