一个简单的问题,我一直试图在谷歌上搜索,并得到的结果不能完全满足我想要的。我想要开发的是两个应用程序,基本上只有我可以看到和使用,所以主应用程序,然后另一个在客户端。客户端应用程序只会看到我从我的应用程序发送的内容。
我想问的问题是,这可能吗?我已经找到了关于如何进行应用程序到应用程序通信的教程,但是当他们在教程中执行此操作时,他们想要与之通信的应用程序已经在他们的手机上。但我的应用程序将在远离彼此的不同手机上。这个概念是否仍然有效。
我这样做的主要原因是,为了避免服务器从Android应用程序连接到mysql,然后客户端也进行服务器连接以检索信息,因为我对android的mysql数据库连接的理解现在最小化为零。
答案 0 :(得分:2)
为了让两个应用程序“通信”,您需要连接 - TCP / IP(WiFi /网络),蓝牙等。如果它们“远离”,那么它就是网络连接。
为了使用TCP / IP,设备需要一个“IP地址” - 这是由运营商,它所连接的WiFi网络等分配的。由于这些IP地址会随着时间而改变,所以你不能依赖它。这就像试图给总是有不同房屋地址的人发信。每次,您都需要询问将其发送到何处。但是,您只能使用一封信来询问 - 所以如果它在您提出要求之前发生变化,则在他们与您联系之前您无法进行沟通。但是如果你的设备做同样的事情,那么你很快就会无法沟通。
因此,您需要一个“静态IP”地址(服务器)和一个“查找表” - 一种识别您想要联系的设备的方式(如用户名或电话号码),然后您就可以获得IP当设备告诉服务器它是什么时。同样,您的设备可以告诉服务器您的IP地址是什么。
然而,对于您,网络和设备而言,这是很多工作。这就是谷歌制作谷歌云消息传递(GCM)的原因。它完成了大部分工作 - 包括在设备不可用时排队消息,保持准确和最新的设备地址,消息传递验证,服务器正常运行时间等。
这称为“推送”通知,因为服务器知道在何时完成“推送”消息。
编辑: 您必须创建“查找表” - GCM将跟踪设备和IP地址的ID,但您可能不希望每个设备都存储“所有设备”的表 - 您只需要一个“联系人”列表(a “所有设备”的子集。除非你为一个非常小的组建立这个,否则你需要一个服务器来处理它。
GCM还有很多替代方案--Parse,Quickblox等,或构建自己的XMPP服务器。但如果你对SQLite不满意,那么“开箱即用”的解决方案是最好的。
此外,这可能比你意识到的要困难得多。但对我而言,移动设备是一个有趣而有趣的方面。