Как я могу получать ожидающие сообщения с помощью Google Nearby API?

Я хотел бы иметь возможность отправлять сообщения от одного пользователя другому, используя близлежащий API Google. Однако, согласно их рекомендациям, устройство в состоянии подписки/публикации потребляет в 2,5–3,5 раза больше энергии, чем обычно. Поэтому они рекомендуют вам подписываться / публиковать только после того, как ваша активность выйдет на передний план. Но это означает, что если два устройства не отображают приложение на экране ОДНОВРЕМЕННО, они не смогут отправлять/получать сообщения друг другу. Я хотел бы, чтобы пользователь A вышел на передний план, отправил сообщение, и когда пользователь B выходит на передний план, чтобы он увидел это сообщение.

Идеальным сценарием было бы запустить что-то вроде firechat (https://play.google.com/store/apps/details?id=com.opengarden.firechat&hl=en). Где вы отправляете/получаете сообщения в режиме реального времени. Они просто оставляют подписку / публикацию в фоновом режиме все время, независимо от расхода батареи?

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


person TomTaila    schedule 31.08.2015    source источник


Ответы (1)


I would like for user A to enter the foreground, send a message, and when user B enters the foreground, for them to see that message.

Именно так это работает. Каждое сообщение имеет атрибут TTL (срок жизни), который по умолчанию установлен на 300 секунд (см.: Стратегия). Пока сообщение активно (это означает, что TTL по-прежнему действителен, и пользователь А не отменил его публикацию), пользователь Б сможет найти его вскоре после подписки.

Вся концепция обмена сообщениями с помощью Nearby API должна восприниматься как поток публикации-обнаружения, а не стандартная связь отправки-получения.

person EyesClear    schedule 08.10.2015