我想写一个应用程序,从服务器接收推送警报。我找到了一些方法来做到这一点。
SMS -拦截传入的SMS并从服务器发起拉取 定期轮询服务器
每种方法都有其局限性。短信-不保证到达时间。投票可能会耗尽电池。
你有更好的建议吗?非常感谢。
我想写一个应用程序,从服务器接收推送警报。我找到了一些方法来做到这一点。
SMS -拦截传入的SMS并从服务器发起拉取 定期轮询服务器
每种方法都有其局限性。短信-不保证到达时间。投票可能会耗尽电池。
你有更好的建议吗?非常感谢。
当前回答
我不知道这是否还有用。我在http://www.pushlets.com/上使用java库实现了类似的功能
虽然在服务中这样做不会阻止android关闭它或杀死监听线程。
其他回答
Firebase Cloud Messaging (FCM)是GCM的新版本。FCM是一种跨平台消息传递解决方案,允许您安全地免费发送消息。继承GCM的中央基础设施,在Android, iOS, Web (javascript), Unity和c++上可靠地传递消息。
截至2018年4月10日,谷歌已不批准GCM。GCM服务器和客户端api已弃用,将于2019年4月11日移除。谷歌建议将GCM应用程序迁移到Firebase Cloud Messaging (FCM), FCM继承了可靠且可扩展的GCM基础设施。
资源
恐怕你已经找到了两种可能的方法。谷歌是,至少在最初,要实现一个GChat api,你可以使用一个推/拉实现。不幸的是,这个库被Android 1.0砍掉了。
还是……
3)与服务器保持连接,每隔几分钟发送Keep -alive,服务器可以即时推送消息。这就是Gmail,谷歌Talk等的工作原理。
截至2016年5月18日,Firebase是谷歌为移动开发者提供的统一平台,包括推送通知。
(我曾回答过一个类似的问题——Android是否支持近乎实时的推送通知?)
我最近开始在Android上使用MQTT http://mqtt.org作为做这类事情的一种方式(例如,推送通知不是SMS,而是数据驱动的,几乎是即时消息传递,而不是轮询等)。
我有一篇关于这方面的背景信息的博客文章,以防有用
http://dalelane.co.uk/blog/?p=938
(注意:MQTT是IBM的技术,我应该指出我为IBM工作。)