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

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

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

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


当前回答

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基础设施。

资源

其他回答

谷歌的官方答案是Android云到设备消息框架(已弃用)谷歌云消息(已弃用)Firebase云消息

它将适用于Android >= 2.2(在有Play Store的手机上)。

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

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

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基础设施。

资源

你可以使用Xtify (http://developer.xtify.com) -他们有一个与他们的SDK一起工作的推送通知web服务。它是免费的,到目前为止,它对我来说工作得很好。