我想写一个应用程序,从服务器接收推送警报。我找到了一些方法来做到这一点。

SMS -拦截传入的SMS并从服务器发起拉取 定期轮询服务器

每种方法都有其局限性。短信-不保证到达时间。投票可能会耗尽电池。

你有更好的建议吗?非常感谢。


当前回答

(我曾回答过一个类似的问题——Android是否支持近乎实时的推送通知?)

我最近开始在Android上使用MQTT http://mqtt.org作为做这类事情的一种方式(例如,推送通知不是SMS,而是数据驱动的,几乎是即时消息传递,而不是轮询等)。

我有一篇关于这方面的背景信息的博客文章,以防有用

http://dalelane.co.uk/blog/?p=938

(注意:MQTT是IBM的技术,我应该指出我为IBM工作。)

其他回答

有一项新的开源项目正在开发一个Java库,用于基于Meteor web服务器的Android推送通知。你可以在执事项目博客上查看,在那里你可以找到Meteor和项目的GitHub存储库的链接。我们需要开发人员,所以请传播这个消息!

恐怕你已经找到了两种可能的方法。谷歌是,至少在最初,要实现一个GChat api,你可以使用一个推/拉实现。不幸的是,这个库被Android 1.0砍掉了。

Android云到设备消息框架

重要提示:C2DM已于2012年6月26日正式弃用。这意味着C2DM已停止接受新用户和配额请求。不会向C2DM添加任何新特性。然而,使用C2DM的应用程序将继续工作。鼓励现有的C2DM开发人员迁移到C2DM的新版本,称为谷歌Cloud Messaging for Android (GCM)。有关更多信息,请参阅c2d -to- gcm迁移文档。开发人员必须在新的开发中使用GCM。

请查看以下链接:

http://developer.android.com/guide/google/gcm/index.html

逍遥法:

如果你的目标用户基数不大(少于1000人),你想要一个免费的服务开始,那么Airbop是最好的和最方便的。

Airbop网站 它通过其API使用谷歌云消息服务,并提供了良好的性能。我已经在我的两个项目中使用了它,而且很容易实现。

像和Urbanship这样的服务非常出色,但它们提供了整个部署堆栈,而不仅仅是推送通知之类的东西。

如果只有推送服务是你的目标,Airbop将工作良好。

我还没用过Pushwoosh,但它也是一个不错的选择。它允许免费向1,000,000台设备推送

C2DM:您的应用程序用户必须有gmail帐户。

MQTT:当你的连接达到1024时,它将停止工作,因为它使用了linux的“select model”。

有一个免费的android推送服务和api,你可以试试:http://push-notification.org