我想写一个应用程序,从服务器接收推送警报。我找到了一些方法来做到这一点。
SMS -拦截传入的SMS并从服务器发起拉取 定期轮询服务器
每种方法都有其局限性。短信-不保证到达时间。投票可能会耗尽电池。
你有更好的建议吗?非常感谢。
我想写一个应用程序,从服务器接收推送警报。我找到了一些方法来做到这一点。
SMS -拦截传入的SMS并从服务器发起拉取 定期轮询服务器
每种方法都有其局限性。短信-不保证到达时间。投票可能会耗尽电池。
你有更好的建议吗?非常感谢。
当前回答
我对Android推送通知的理解/经验是:
C2DM GCM -如果你的目标android平台是2.2+,那么就去做吧。只有一个问题,设备用户必须总是使用谷歌帐户登录才能获得消息。 MQTT -基于Pub/Sub的方法,需要从设备主动连接,如果不合理实现可能会消耗电池。 执事-可能不是很好,因为有限的社区支持。
编辑:2013年11月25日添加
GCM -谷歌说…
对于3.0版本之前的设备,这要求用户在移动设备上设置自己的谷歌账户。Android 4.0.4及以上版本的设备不需要谷歌帐户
其他回答
您可以使用谷歌云消息或GCM,它是免费的,易于使用。你也可以使用第三方推送服务器,比如PushWoosh,它可以给你更多的灵活性
谷歌的官方答案是Android云到设备消息框架(已弃用)谷歌云消息(已弃用)Firebase云消息
它将适用于Android >= 2.2(在有Play Store的手机上)。
还是……
3)与服务器保持连接,每隔几分钟发送Keep -alive,服务器可以即时推送消息。这就是Gmail,谷歌Talk等的工作原理。
C2DM:您的应用程序用户必须有gmail帐户。
MQTT:当你的连接达到1024时,它将停止工作,因为它使用了linux的“select model”。
有一个免费的android推送服务和api,你可以试试:http://push-notification.org
我不知道这是否还有用。我在http://www.pushlets.com/上使用java库实现了类似的功能
虽然在服务中这样做不会阻止android关闭它或杀死监听线程。