我正在尝试编写一个应用程序,将数据从一个android设备传输到另一个-但设备最有可能位于城市,州或国家的不同部分。(直接的方法是有一个中央服务器(或任何类型的服务器),但我尽量避免使用一个)。
我试图传递的数据是文本、图片或两者的组合。
到目前为止,我发现的解决方案是使用特殊格式的文本或图片消息进行通信;但这似乎远非最佳选择。有更好的解决方案吗?
真正的P2P在3G上是不可能的。
在你的问题中,你提到你目前使用消息。我想你是指短信。
你可以使用自定义mime类型的邮件和附件,比如application/foobar-data
。
远程用户将收到此邮件并点击附件。您的应用程序将注册处理application/foobar-data
mime类型,使用清单中的意图过滤器,然后自动启动并接收数据。之前生成的邮件主体也可以预先填充有关应用程序和如何安装它的信息,例如"您需要FooBar来查看附件。
因此,最终,你的应用程序可以发送和接收自定义数据,而不依赖于专用服务器。
使用Amazon Simple Queue Service:
Amazon Simple Queue Service (Amazon .SQS)提供了一个可靠的,高度用于存储的可伸缩的托管队列信息在它们之间传递电脑。通过使用Amazon SQS,开发人员可以简单地移动数据的分布分量之间他们的应用程序不同的任务,不输消息或要求每个组件随时可用
看看ShazzleMail。你可以下载他们的应用程序,通过智能手机进行p2p通信。寻址是通过中间人完成的,但所有内容都是p2p的。