Оповещение, когда два пользователя/друга находятся рядом друг с другом — Android Proximity

Я пытался искать, но ничего не нашел. Мой вопрос: «Как я могу предупредить 2 или более пользователей, если они находятся рядом друг с другом?» в Android с помощью геозоны или чего-то еще.

Скажем, если пользователь А находится на футбольном поле, а пользователь Б идет рядом с этим футбольным полем. Затем UserA и UserB автоматически получают уведомление о том, что UserA/UserB где-то поблизости.


person Rafique Mohammed    schedule 08.10.2014    source источник


Ответы (3)


Наконец, потратив пару часов на размышления, я придумал лучший способ сделать это:

  1. Настройте базу данных (MySQL, SQL и т. д.) на вашем сервере, в которой есть таблица пользователей и таблица местоположений, в которых есть данные о местоположении.

  2. В Android создайте службу, которая будет запускаться раз в 15 минут, запрашивая текущее местоположение.

  3. Создайте SharedPreference/SQliteDB, в котором хранятся последние координаты устройства, которые также были обновлены в базе данных сервера.

    3.1 If текущее местоположение соответствует последнему местоположению, полученному из SharedPreference and/or текущее местоположение в пределах x близости (зависит от того, сколько вы даете x 30 футов или более)
    then пользователь находится в том же месте, поэтому не загружайте координаты в базу данных сервера.

    3.2. If пользователь не находится поблизости or последнее местоположение не соответствует текущему местоположению
    then загрузить координаты в базу данных сервера.

  4. После загрузки координат на сервер также обновите SharedPreference...

  5. После загрузки координат Сервер должен вернуть данные Пользователя из своей базы данных, которые находятся в пределах вашей близости. Затем ваше приложение узнает, кто находится рядом с вами, и отправит вам уведомление со словами: «Ваш приятель XXX рядом!»

  6. На сервере после загрузки ваших координат сервер также отправит уведомление пользователю, находящемуся рядом с вами, с помощью Google Cloud Messaging.

Советы. Запустите задание cron на своем сервере, которое будет выполняться каждую минуту, проверять "кто рядом с кем" и отправлять им уведомления.

Надеюсь кому-нибудь поможет :)

person Rafique Mohammed    schedule 09.10.2014

Это слишком просто. Просто отправьте свое мобильное местоположение в базу данных и используйте этот запрос при поиске ближайших пользователей:

$query = "select * from 
    (SELECT name,latitude,longitude,round((((acos(sin((".$latitude."*pi()/180)) * 
    sin((`latitude`*pi()/180))+cos((".$latitude."*pi()/180)) * cos((`latitude`*pi()/180)) * 
    cos(((".$longitude."- `longitude`)*pi()/180))))*180/pi())*60*1.1515*1.609344),1) as distance
FROM location) as temp order by distance";

Для получения дополнительной информации я сделал сообщение об этом.

http://www.freebieslearning.info/android-2/android-find-nearby-user/

Я надеюсь, что это поможет вам.

person Sumit Rajpal    schedule 09.01.2017

  1. На устройстве запросите свою собственную позицию через API местоположения Android.
  2. На устройстве отправить результат своим друзьям
  3. На устройстве B получите местоположение устройства A
  4. На устройстве B отправьте местоположение устройства B на устройство A.
  5. Рассчитайте расстояния между точками A и B. Отобразите уведомление, если требования по расстоянию соблюдены.

Есть много способов, как это сделать.

person Cativail    schedule 08.10.2014
comment
Не удовлетворены! 1) Почему устройство UserA постоянно обновляет свое местоположение на сервере или у UserB? Это высушит сок 2-й) Отправка информации о местоположении UserA для UserB и UserC может быть выполнена с помощью? - person Rafique Mohammed; 09.10.2014