是否可以在没有服务器的情况下在远距离的 Android 设备之间交换数据?

Is it possible to exchange data between Android devices at distance without a server?

我正在尝试开发一个应用程序来控制孩子的位置。思路是:

  1. 我 运行 孩子 phone 上的应用程序,然后启动正在侦听传入 SMS 事件的服务。
  2. parent 的 phone 发送了代码为“你在哪里?”的短信
  3. 从正确的 phone 号码获得正确的代码后,孩子的 phone 找到了它的位置并将位置数据作为短信发送回 parent。
  4. parent 的 phone 获取位置并显示它。

在这种情况下一切正常,但我想使用网络发送数据。问题是可以在没有服务器的情况下完成这样的任务吗?如果服务器必须是,那么执行该任务的最简单方法是什么?我应该使用聊天服务器想法 Firebase Cloud Messaging 吗?

实际上,您需要某种服务器来充当两者之间的中间人。 Firebase 会很好,尽管我不会依赖 Firebase Cloud Messaging 来传送实际数据(只是通知其他设备“新数据”可用)。

就我个人而言,我会这样处理:

  • Parents phone 将记录添加到数据库(比方说 Cloud Firestore),上面写着“此用户已请求此用户的位置”。
  • 服务器向 child 的设备发送推送通知以唤醒应用程序。
  • 应用程序检查服务器以查看数据库中是否有当前用户的任何位置请求。
  • 它找到位置请求并填充坐标。
  • 另一个推送通知被发送到 parents phone 以唤醒应用程序。
  • 它检查数据库,可以看到位置请求已被填充。

还有一些其他步骤和角落可以削减,但这就是它在原则上的工作方式(以及它在许多应用程序中的工作方式)。