android - Android应用程序可以向其他手机发送数据包吗?

标签 android communication

我正在尝试弄清楚这是否可能:

我有兴趣编写一个可以在点对点设置中玩的简单游戏,而不必通过一些中间服务器。我正在考虑使用类似于短信工作原理的东西,但我不知道这些例程是否可以访问。

据我了解,短信只是一个具有特定结构的数据包,在某个端口上,它被发送到电话号码作为唯一标识符,而不是 IP 地址。如果是这种情况,是否可以使用与 SMS 使用的类似例程来将消息发送到另一部手机,但以这样的方式 SMS 不会接收它,并且如果能够理解该数据包的应用程序不运行,那么数据就会被忽略?

最佳答案

您可以编写发送短信和接收短信的应用程序。需要记住的一些事情:

  • 短信往往很昂贵,尤其是与 IP 流量相比。
  • 用户必须授予向应用发送和读取短信的权限。他可能不会这样做,因为他知道这很贵。
  • 即使用户契约(Contract)提供短信固定费率,提供商也可能会限制发送的短信的实际数量或禁止自动、高流量的使用。
  • SMS 可能比 IP 数据包慢得多。
  • 如果用户尝试与未安装该应用的人一起玩,那个可怜的人的短信收件箱将会被这些短信淹没。

因此,使用短信来实现这一目的基本上是一个坏主意。如果用户彼此足够接近,则可以选择一些替代方案:

  • 使用蓝牙。
  • 使用 Wifi(大多数 Android 手机不允许临时连接,但某些手机可以充当接入点,以便其他手机可以连接到它)。
  • 也许:使用 NFC(只有一些最新的手机有此功能,我不知道您是否可以通过这种方式使用 NFC)。
  • 通过互联网使用 P2P(这要求至少有一个提供商允许使用公共(public) IP 在其网络上进行传入连接,例如无内部 NAT)。
  • 使用处理手机之间流量的服务器。

关于android - Android应用程序可以向其他手机发送数据包吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9590161/

相关文章:

android - 带有旋转 fragment 的 ActionBar 选项卡

android - 将值插入数据库时​​出错

多台服务器之间的通信

scala - Scala中最简单的过程通讯形式

java - C <> Java多平台通信

Android Java 中的 java.lang.NullPointerException

android - 使用 Sencha Touch 2 构建器创建 Android 应用程序

android - 布局背景未根据 BottomSheet 布局中的背景可绘制进行裁剪

c - 微型计算机,串口。请求多个字节

java - 我怎样才能捕捉到另一个线程异常