GCM(Google Cloud Messaging)推送完全解析

转载请注明出处:http://www.cnblogs.com/cnwutianhao/p/6664293.html

应该是目前为止全网最详细的GCM推送解析。

GCM官方解释: https://developers.google.cn/cloud-messaging/?hl=zh-cn

Send data from your server to your users‘ devices, and receive messages from devices on the same connection. The GCM service handles all aspects of queueing of messages and delivery to client applications running on target devices, and it is completely free.

中文解释:将数据从服务器发送到用户设备,并从同一连接上的设备接收消息。 GCM服务处理消息排队的所有方面,并将其传递到在目标设备上运行的客户端应用程序,它是完全免费的。

1.申请GCM推送的网址:https://firebase.google.cn/  Google在2016年I/O大会推出的全新服务Firebase

点击 "免费开始使用"(需要科学上网,你懂得)

2.进入到Firebase的使用界面

3.点击 "新建项目"

4.创建好项目之后会出现如下界面

点击 "将Firebase添加到您的Android应用"

5.将包名(package) 和 随便起的应用别名填到下面的横线处,点击"REGISTER APP"

6.点击 "Download google-services.json",把下载下来的.json文件拷贝到Project形式的app文件夹里面。点击"继续"

7.在工程里面添加相应的库

①在工程里面找到 build.gradle(Project:项目名),在dependencies{}里面添加

classpath ‘com.google.gms:google-services:3.0.0‘

②在工程里面找到 build.gradle(Module:app),在最下面添加

apply plugin: ‘com.google.gms.google-services‘

点"完成"

8.点击完成之后就会在概览里面看到刚刚创建的项目

9.点击左侧的 "Notifications"

会出现如下界面:

10.点击 "了解详情",进入网页 https://firebase.google.cn/docs/notifications/,网页里面我们会看到 实现 GCM推送的流程

在网页的最下面有Google官方提供的Demo链接地址https://github.com/firebase/quickstart-android/tree/master/messaging/

11.在build.gradle(Module:app)里面添加依赖库(谷歌提供)

compile ‘com.google.firebase:firebase-core:10.2.1‘
compile ‘com.google.firebase:firebase-messaging:10.2.1‘
compile ‘com.firebase:firebase-jobdispatcher:0.5.2‘

12.修改工程代码

①添加三个Service(Demo中给提供了,直接拷贝到项目里)文件到项目里

MyFirebaseInstanceIDService

MyFirebaseMessagingService

MyJobService

②修改AndroidManifest

1)添加联网权限(官方Demo里竟然没提到联网权限,不知道何原因)

<uses-permission android:name="android.permission.INTERNET" />

2)将三个Service添加到配置文件里

13.发送通知

在第9步,点击"发送您的第一条消息",在目标那栏选择 "单个设备",这时候提示我们需要FCM注册令牌,有些人就蒙了,这去哪里找,我们好像从来没设置或者给过这个值。

运行项目(手机要科学上网,否则获取不到FCM注册令牌)

14. FCM注册令牌

在MyFirebaseInstanceIDService里面谷歌已经给我们准备好了FCM注册令牌的获取方式

通过Log日志我的手机打印出来的FCM注册令牌是

cwQxX20HqcE:APA91bGsPdGAPV79EIbwNgY08qbuMw-WBUdtJ0M6ALd-OxwAd0IL5EgnPYJqNfWwdY4Kev0FR5flb2odZlJyrDCnrHWXfbQot3cnBLiL-hqvhrGSb53AxGTpwxN37zSnTt0lAp-ZB-XV

将这个值添加到网页FCM注册令牌的输入框内,点击"发送消息"

网页端显示 已完成

手机通知栏就会有显示(Nexus 6P)

证明GCM推送成功!

关注我的新浪微博,获取更多Android开发资讯!
关注科技评论家,领略科技、创新、教育以及最大化人类智慧与想象力!

时间: 2024-08-07 21:18:07

GCM(Google Cloud Messaging)推送完全解析的相关文章

使用Google Cloud Messaging (GCM),PHP 开发Android Push Notifications (安卓推送通知)

什么是GCM? Google Cloud  Messaging (GCM) 是Google提供的一个服务,用来从服务端向安卓设备发送推送通知. GCM分为客户端和服务端开发. 这里我们只介绍服务端开发.其实过程非常简单,只需利用PHP发送POST数据. api key的取得? 待补充? class GCM { public $api_key = "AIzaSyAU3wZs9raik-mHQ"; function __construct() { } /** * Sending Push

推送原理解析 极光推送使用详解

推送原理解析 极光推送使用详解 原军锋 12016.09.22 18:10:07字数 5,705阅读 19,494 推送技术产生场景: --服务器端主动性: 客户端与服务器交互都是客户端主动的, 服务器一般不能主动与客户端进行数据交互, 因为服务器端无法得知客户端的 IP 地址 及 状态; --数据实时性: 如果服务器端有紧急数据要传递给客户端, 就必须主动向客户端发送数据; --基本原理: 使客户端实时获取服务器端消息, Pull 方式, 小周期轮询, 费电费流量; 另一个就是 Push 方式

【Android应用开发】 推送原理解析 极光推送使用详解 (零基础精通推送)

作者 : octopus_truth 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/45046283 推送技术产生场景 : -- 服务器端主动性 : 客户端与服务器交互都是客户端主动的, 服务器一般不能主动与客户端进行数据交互, 因为服务器端无法得知客户端的 IP 地址 及 状态; -- 数据实时性 : 如果服务器端有紧急数据要传递给客户端, 就必须主动向客户端发送数据; -- 基本原理 : 使客户端实时获取服务器端消息,

Google FireBase - fcm 推送 (Cloud Messaging)

要将 Firebase 添加到您的应用,您需要有一个 Firebase 项目以及适用于您的应用的 Firebase 配置文件. 如果您还没有 Firebase 项目,请在 Firebase 控制台中创建一个.如果您已经有与自己的移动应用相关联的现有 Google 项目,请点击导入 Google 项目.如果没有,请点击添加项目. 点击将 Firebase 添加到您的 Android 应用,然后按设置步骤操作.如果您是导入现有 Google 项目,系统可能会自动执行这些操作,您只需下载配置文件即可.

Android Push Notifications using Google Cloud Messaging (GCM), PHP and MySQL

http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/ 按照文章的链接的步骤,实现GCM-HTTP在client 和app server之间的部署.链接一下供须要的同学參考. 在从本地Server移植到web server遇到的问题: 1.Google Api Key是绑定serverIP的,所以在本地换到Web的时候,Google

Android端小米推送Demo解析和实现方法

前言 最近这几个月都是在准备找工作和找工作中,付出了很多,总算是有点收获,所以都没有怎么整理笔记.到了最近才有空把自己的笔记整理一下发上来,分享一下我的学习经验. 推送 由于最近项目要用到Android的消息推送,关于Android推送的解决方案有很多种,有C2DM,轮询, SMS,MQTT协议,XMPP协议和第三方平台,经过我们对项目需求的考虑之后我们选择了第三方平台推送的小米推送,下面就是小米推送的实现方法. 实现准备 想要用小米推送首先要去小米开发者平台注册申请开发者账号,经过1到3天的审

Android与iOS系统的消息推送机制

相信大家在使用iPhone版微信的时候都会有这样的经历,微信已经处于关闭状态了(后台进程运行一段时间就被系统杀掉),这时候我们收到了一个消息提醒,打开微信应用,微信显示“连接中…”和“收取中…”,然后再次显示一次刚才系统推送给我的消息通知.对这个现象比较好奇,于是去知乎上查一下资料,发现知乎上的热心人还真多,看了大家的回答之后,总结如下: [之所以去知乎查看技术问题,因为我并非技术人员,而知乎上很多开发人员是会用通俗易懂的方式解释好技术问题的,因为里面有不少大牛.] 先介绍一下两个重要的消息推送

JPush (极光推送) For Xamarin.Android

官方教程上讲的是 GCM (Google Cloud Messaging) , 不过 GFW 是 GCM 过不去的坎. 极光推送 JPush 是国内的一个不错的替代方案. JPush 提供的 API 易于理解, 使用也很简单, 但是要使用于 Xamarin 还是要费些周章: 要转制成 Binding Library. JPush 提供了一篇转制的示例: http://smilehyh.blog.163.com/blog/static/123343886201362110857402/ 按照过程走

(转)移动端主动推送消息原理

转:https://www.zhihu.com/question/19628406/answer/77205019 一.服务端主动推送消息到客户端过程 作者:谢泽帆   李琰链接:https://www.zhihu.com/question/24938934/answer/85359794来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 服务端主动推送到客户端是怎么一个过程 目前服务端给客户端推送,普遍做法是客户端与服务端维持一个长连接,客户端定时向服务端发送心跳以