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

时间:2023-03-08 21:52:46
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

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

点击 "免费开始使用"(需要*,你懂得)

2.进入到Firebase的使用界面

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

3.点击 "新建项目"

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

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

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

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

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

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

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

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

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'

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

点"完成"

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

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

9.点击左侧的 "Notifications"

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

会出现如下界面:

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

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

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

在网页的最下面有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添加到配置文件里

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

13.发送通知

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

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

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

14. FCM注册令牌

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

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

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

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

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

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

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

网页端显示 已完成

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

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

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

证明GCM推送成功!

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