转载请注明出处: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开发资讯!
关注科技评论家,领略科技、创新、教育以及最大化人类智慧与想象力!

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

  1. 使用GCM服务(Google Cloud Messaging)实现Android消息推送

    最近在网上查了关于很多Android消息推送的资料,其中主要有四种方法. 1) 使用GCM服务(Google Cloud Messaging) 2) 使用XMPP协议(Openfire + Spark ...

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

    什么是GCM? Google Cloud  Messaging (GCM) 是Google提供的一个服务,用来从服务端向安卓设备发送推送通知. GCM分为客户端和服务端开发. 这里我们只介绍服务端开发 ...

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

    作者 : octopus_truth 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/45046283 推送技术产生场景 : -- ...

  4. Google FireBase - fcm 推送 (Cloud Messaging)

    要将 Firebase 添加到您的应用,您需要有一个 Firebase 项目以及适用于您的应用的 Firebase 配置文件. 如果您还没有 Firebase 项目,请在 Firebase 控制台中创 ...

  5. 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- ...

  6. iOS 推送全解析

    本文旨在对 iOS 推送(以下简称 推送)进行一个完整的剖析,如果你之前对推送一无所知,那么在你认真地阅读了全文后必将变成一个推送老手,你将会对其中的各种细节和原理有充分的理解.以下是 pikacod ...

  7. iOS 推送全解析,你不可不知的所有 Tips!

    本文旨在对 iOS 推送进行一个完整的剖析,如果你之前对推送一无所知,那么在你认真地阅读了全文后必将变成一个推送老手,你将会对其中的各种细节和原理有充分的理解.以下是 pikacode 使用 iOS ...

  8. iOS 远程推送消息解析及逻辑处理

    关于远程推送的相关配置网上已经有足够多的教程,这里就不复述了.这里讲述当客户端收到推送消息后,应怎样对其进行相应的逻辑处理. 工程的AppDelegate.m文件里提供了如下方法: //当应用程序启动 ...

  9. iOS 10 推送全解析,注意事项

    本文旨在对 iOS 推送进行一个完整的剖析,如果你之前对推送一无所知,那么在你认真地阅读了全文后必将变成一个推送老手,你将会对其中的各种细节和原理有充分的理解.以下是 pikacode 使用 iOS ...

随机推荐

  1. Java静态代理和动态代理总结

    静态代理 第一种实现(基于接口): 1>接口 public interface Hello { void say(String msg);} 2>目标类,至少实现一个接口 public c ...

  2. java读取Excel文档插入mysql

    /** * 读取excel插入myslq */package com.excel; import java.io.BufferedInputStream;import java.io.File;imp ...

  3. Asp.Net Core 项目实战之权限管理系统(8) 功能菜单的动态加载

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  4. java初级开发程序员(第三单元)

    1.if基本选择结构: 语法: if(条件){     //程序执行时,先判断条件.当结果为true(真)时,程序先执行大括号的代码块,再执行if结构(即{}部分)后面的代码.当结果为false(假) ...

  5. HTML学习二

    继续上一次的学习: <html> <head> <title>新增雇员</title> <script language="javasc ...

  6. 第四章:JQuery选择器

    一.使用选择器的目的 从页面上的万万千千个元素中选择自己需要的. 二.选择器的分类 1.基本选择器 *:标签 *:类 *:ID 交集  AB   AB共同的部分    并集  A,B  AB使用相同的 ...

  7. BZOJ USACO 银组 水题集锦

    最近刷银组刷得好欢快,好像都是水题,在这里吧他们都记录一下吧(都是水题大家一定是道道都虐的把= =)几道比较神奇的题到时再列出来单独讲一下吧= =(其实我会说是BZOJ蹦了无聊再来写的么 = =) [ ...

  8. C# 控制台倒计时

    年前经常聊天的大佬群里有人写了窗体的倒计时来计算下班时间和放假时间:) 简直就是在嘲讽我这种没有工作的人,哈哈哈 窗体的倒计时相当的没有技术含量,主要是不够炫酷,不能够体现我们程序员的身份. 那什么才 ...

  9. 一个chrome图片下载插件的开发过程

    最近在做采集,发现用chrome的插件来下载整站也是一个不错的思路,所以想开发一个下载网页(仿站)的插件,学习过程如下: 首先查看一些文档资料 学习360翻译的开发文档:http://open.se. ...

  10. Spark_总结四

    Spark_总结四 1.Spark SQL     Spark SQL 和 Hive on Spark 两者的区别?         spark on hive:hive只是作为元数据存储的角色,解析 ...