Приглашайте и обменивайтесь данными приложения между устройствами Android

Я пытаюсь разработать свое первое приложение для Android. По сути, это счетчик очков. Моя идея состоит в том, чтобы добавить функциональность, как в других приложениях, таких как Wunderlist:

1) Пользователь A и пользователь B установили приложение на свои устройства.

2) Пользователь А создает счет игры с двумя игроками (хранится в формате xml).

3) Пользователь А отправляет приглашение пользователю Б поделиться этим игровым счетом (возможно, используя свою учетную запись Google).

4) Пользователь B получает приглашение/уведомление и принимает его.

5) Оба пользователя разделяют оценку, они могут ее изменить, и оценка обновляется на обоих устройствах каждый раз, когда она изменяется, так что оба пользователя имеют одинаковую оценку.

6) Если оценка удалена, приложение отправит уведомление, чтобы удалить ее на другом устройстве.

Например, в приложении Wunderlist вы можете создать список и пригласить кого-нибудь поделиться этим списком. Существует множество приложений для Android, таких как производственные приложения, которые обмениваются информацией таким образом.

¿Как я могу реализовать это?

Заранее спасибо.


person jgonzal    schedule 08.01.2016    source источник
comment
Вы можете обмениваться данными по использованию: подключение к Интернету, Bluetooth. или Wi-Fi подключение по локальной сети. При подключении к Интернету вам необходимо создать серверный модуль для приема и передачи данных.   -  person GiapLee    schedule 08.01.2016
comment
Загляните в Firebase – легко внедрить клиентский код для обновлений и т. д. В противном случае вы можете выполнять обновление через Bluetooth и т. д. .   -  person yennsarah    schedule 08.01.2016


Ответы (1)


Вопрос очень общий, но я постараюсь ответить как можно более подробно. Прежде всего вам понадобится сервер, к которому будет подключаться каждый пользователь. Вы можете создать соединение между пользователями, например. bluetooth, но, как вы знаете, он работает только на небольшом расстоянии.

Ответ:

Все файлы должны храниться на сервере, чтобы вы могли отправлять на сервер данные в формате JSON, что очень просто реализовать. Затем сервер может создавать push-уведомления пользователю, к которому первый пользователь хочет подключиться. Основная идея заключается в том, что каждый клиент должен создать соединение с сервером, чтобы получать push-уведомления.

По моему скромному мнению, лучшим решением в таком случае является Google Cloud Messaging, который отправляет данные с сервера на устройства пользователей.

person Community    schedule 08.01.2016
comment
Этот марсианин понял суть. Эта простая проблема совместного использования гораздо сложнее. Что, если пользователь удалит файл за пределами вашего приложения на своем устройстве? Что, если оба пользователя редактируют файл одновременно? Что делать, если пользователь изменяет файл без подключения к Интернету? Все эти проблемы упрощаются при наличии файла на сервере, который можно использовать в качестве точки отсчета. Затем вы реализуете свою логику для решения особых случаев, о которых я упоминал выше, но основная идея заключается в том, чтобы всегда сравнивать пользовательский файл с файлом на сервере. - person nstosic; 08.01.2016
comment
Я думаю, что Google Cloud Messaging — это именно то, что я искал. Я постараюсь найти дополнительную информацию и любой пример для ее реализации. Идея этой функциональности состоит в том, чтобы использовать ее, когда я играю онлайн с друзьями, и счет не будет часто обновляться, поэтому, хотя я ясно понимаю, что мне нужно реализовать некоторую логику для этих случаев, я думаю, что это не так. быть источником частых проблем. Если я смогу заставить это работать, я добавлю код, если он может кому-то помочь. Большое спасибо. - person jgonzal; 08.01.2016
comment
Это подробно, но пришло мне в голову. Быстрое и простое решение для разных стадий файла. Вы можете просто добавить в файл целое число, представляющее текущую версию файла. Это может быть целое число с автоинкрементом, и таким образом вы можете сравнивать разные файлы. - person ; 08.01.2016