【问题标题】:Offline connection of two Android devices离线连接两台安卓设备
【发布时间】:2019-04-09 22:48:14
【问题描述】:

我有多个智能手机或平板电脑,Android 为 4.4 或更高版本。有几种方法,如何将这些设备相互连接:

  1. WiFi - 如果它们连接到同一网络并且已连接
  2. 蓝牙 - 此设备之间的距离有限制
  3. WiFi Direct - 离线,但不稳定。我已经尝试了 许多 示例和库,但是当我试图在它们之间建立连接时,这些设备之间甚至没有稳定性。甚至文档也写得很糟糕。
  4. Google Nearby - 再次,它使用多个传感器 + 蓝牙 + WiFi + 网络单元等。 - 但我需要连接到互联网
  5. NFC - 太短了
  6. 云的东西 - 我不想要的东西

有没有办法多个设备可以在没有互联网连接的情况下相互发送数据(WiFi 可以打开,但没有网络连接)。例如通过 WiFi 或其他方式进行离线套接字连接?此案例试图解决服务器不可用的情况,但在第一部智能手机上执行的操作可以发送到第二部智能手机,而无需客户进行任何询问。有什么帮助吗?

【问题讨论】:

  • 重新“Google Nearby”:附近的连接不需要互联网连接。

标签: android bluetooth nfc wifi-direct google-nearby


【解决方案1】:

您可以通过将设备置于同一网络上来实现这一点。其中一个可以启动 Web 服务器,另一个可以通过套接字连接到它。有很多可用的库。

【讨论】:

    【解决方案2】:

    是的,当然!正如@jantursky 所指出的,您可以在其中一台 PC 上安装 apache 服务器,通过它将所有智能手机和平板电脑连接到它,可以自动为您提供所有这些设备之间的连接实例!
    我已经尝试了很多次,所以是的,你也可以完成它!
    更好看:https://*.com/a/42923433/5506381

    我希望这能解决您的问题!

    【讨论】:

      【解决方案3】:

      这些设备只要连接到网络中的同一个路由器,就可以与这些设备通信,如果同一网络中的路由器发生变化,设备将不会通过路由器连接到服务器在其他路由器上。

      然后您必须在路由器设置中使用MAC地址手动为您的服务器提供静态IP地址用于识别设备的服务器。其他设备将服务器的ip地址存储在他们的代码中。

      接下来,如果您在网络中有一台计算机,使用它设置服务器会很容易。服务器可以存储连接的每个设备的详细信息,并通过 IP 地址共享给其他设备列表。此设置有助于直接进行设备与设备之间的通信,但如果其他设备的 IP 地址发生更改,则可能会失败。

      您可以只使用客户端-服务器模型,仅向其他设备显示设备列表,并将通信路由委托给服务器,因为服务器将更新每个设备的通信通道信息。

      此设置也可以使用移动设备完成,但如果移动设备进入锁定模式,则可能会因通信或电源使用受限而中断。

      【讨论】: