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

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

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

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


当前回答

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

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

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

其他回答

我建议同时使用SMS和HTTP。如果用户还没有登录,就给他们的手机发短信通知他们有消息等待。

这就是爱立信实验室服务的工作方式:https://labs.ericsson.com/apis/mobile-java-push/

如果你自己实现这一点,棘手的部分是删除传入的短信,而用户看不到它。或者让他们看到你的情况也没关系。

看起来这是可行的: 使用BroadCastReceiver删除短信- Android

是的,编写这样的代码可能是危险的,你可能会毁掉某人的生活,因为你的应用程序删除了一条它不应该删除的短信。

我不知道这是否还有用。我在http://www.pushlets.com/上使用java库实现了类似的功能

虽然在服务中这样做不会阻止android关闭它或杀死监听线程。

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

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

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

你可以使用push

它是一种托管服务,可以超级容易地向web和移动应用程序添加实时数据和功能。 pushher提供了集成到所有主要运行时和框架的库。

PHP, Ruby, Python, Java, .NET, Go和服务器上的Node JavaScript, Objective-C (iOS)和Java (Android)客户端。

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

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

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

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

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