46

我是 android 应用程序开发的新手,我正在学习一点点。我正在执行一项艰巨的任务,将推送通知(云消息传递)从我的 Web 服务器(PHP)发送到 android 应用程序(只是一个“helloworld”)。我做了一些“谷歌搜索”,我的怀疑很少

  1. Google 正在使用我们的“设备 ID”发送通知,对吗?
  2. 除了在 out manifest 中添加一些权限以接收通知之外,我们的应用程序中是否需要任何代码?
  3. 我们必须将用户的设备 ID 注册到“本地数据库”才能发送通知,是吗?

请帮助我另外,任何人都可以向我展示用于从 PHP 服务器发送简单通知的代码示例或文档吗?

提前致谢

4

4 回答 4

25

gcm 概述:您从您的 android 手机向 google 服务器发送请求。您会收到一个注册 ID 作为响应。然后,您必须将此注册 ID 发送到您希望将通知发送到移动设备的服务器。然后,您可以使用此注册 ID 向设备发送通知。

回答:

  1. 要发送通知,请将带有设备注册 ID 的数据(消息)发送到https://android.googleapis.com/gcm/send。(在 php 中使用 curl)。
  2. 要接收通知和注册等,这就是您所需要的。
  3. 您必须将注册 ID 存储在设备和服务器上。如果您使用 GCM.jar,则注册 ID 存储在首选项中。如果您愿意,也可以将其保存在本地数据库中。
于 2013-05-07T11:56:24.167 回答
24

Firebase:https ://firebase.google.com/docs/cloud-messaging/

GCM(已弃用):http: //developer.android.com/google/gcm/index.html

我对C2DM了解不多。使用 GCM,很容易实现和配置。

于 2013-05-05T16:16:57.317 回答
17

2016 年更新:

GCM 正在被 FCM 取代

2015 年更新:

看看developers.android.com - Google用GCM Demo Implementation/How To替换了 C2DM

2014 年更新:

1) 您需要在服务器上检查您从 Google 服务器获得的 HTTP 响应。确保它是 200 OK 响应,以便您知道消息已发送。如果您收到另一个响应(302 等),则消息未成功发送。

2)您还需要检查您使用的注册ID是否正确。如果您提供了错误的注册 ID(作为消息的目的地 - 在特定设备上指定应用程序),则 Google 服务器无法成功发送它。

3) 您还需要检查您的应用程序是否已成功注册到 Google 服务器,以接收推送通知。如果注册失败,您将不会收到消息。

第一个答案 2014

这是一个很好的问题,您可能应该看看它:如何在我自己的 android 应用程序中添加推送通知

这里还有一个很好的博客,方法很简单:http: //blog.serverdensity.com/android-push-notifications-tutorial/

于 2013-05-05T16:11:22.863 回答
2

你可以按照这个教程

http://www.androidbegin.com/tutorial/android-google-cloud-messaging-gcm-tutorial/

它帮助我做一个推送通知;或者你可以按照这个其他教程

http://www.tutorialeshtml5.com/2013/10/tutorial-simple-de-gcm-traves-de-php.html

但它是西班牙语,但您可以下载代码。

于 2014-03-06T03:08:52.203 回答