Может ли приложение для Android отправлять пакеты данных на другие телефоны? - PullRequest
2 голосов
/ 06 марта 2012

Я пытаюсь выяснить, возможно ли это:

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

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

1 Ответ

3 голосов
/ 06 марта 2012

Вы можете написать приложения, которые отправляют SMS и получают SMS. Некоторые вещи, которые нужно иметь в виду:

  • SMS, как правило, стоят дорого, особенно по сравнению с IP-трафиком.
  • Пользователь должен предоставить разрешение на отправку и чтение SMS в приложение. Он, вероятно, не будет делать, потому что он знает, что это дорого.
  • Даже если в пользовательском договоре предусмотрена фиксированная ставка SMS, провайдеры могут ограничить фактическое количество отправляемых SMS или запретить автоматическое использование большого количества трафика.
  • SMS может быть намного медленнее, чем IP-пакеты.
  • Если пользователь попытается поиграть с кем-то, кто не установил приложение, у этого бедного человека будут отправлены входящие SMS-сообщения с этими SMS.

Так что использование SMS для этой цели - плохая идея. Некоторые альтернативы, если пользователи близки друг к другу:

  • Использовать Bluetooth.
  • Использовать Wi-Fi (большинство телефонов на базе Android не поддерживают одноранговые соединения, но некоторые телефоны могут действовать как точки доступа, так что другие могут подключаться к нему).
  • Может быть: использовать NFC (только некоторые новейшие телефоны имеют это, и я не знаю, можно ли использовать NFC таким образом).
  • Использовать P2P через Интернет (для этого требуется хотя бы один провайдер, чтобы разрешить входящие соединения в своей сети с публичным IP-адресом, например, без внутреннего NAT).
  • Используйте сервер, который обрабатывает трафик между телефонами.
...