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开发资讯!
关注科技评论家,领略科技、创新、教育以及最大化人类智慧与想象力!
GCM(Google Cloud Messaging)推送完全解析的更多相关文章
- 使用GCM服务(Google Cloud Messaging)实现Android消息推送
最近在网上查了关于很多Android消息推送的资料,其中主要有四种方法. 1) 使用GCM服务(Google Cloud Messaging) 2) 使用XMPP协议(Openfire + Spark ...
- 使用Google Cloud Messaging (GCM),PHP 开发Android Push Notifications (安卓推送通知)
什么是GCM? Google Cloud Messaging (GCM) 是Google提供的一个服务,用来从服务端向安卓设备发送推送通知. GCM分为客户端和服务端开发. 这里我们只介绍服务端开发 ...
- 【Android应用开发】 推送原理解析 极光推送使用详解 (零基础精通推送)
作者 : octopus_truth 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/45046283 推送技术产生场景 : -- ...
- Google FireBase - fcm 推送 (Cloud Messaging)
要将 Firebase 添加到您的应用,您需要有一个 Firebase 项目以及适用于您的应用的 Firebase 配置文件. 如果您还没有 Firebase 项目,请在 Firebase 控制台中创 ...
- 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- ...
- iOS 推送全解析
本文旨在对 iOS 推送(以下简称 推送)进行一个完整的剖析,如果你之前对推送一无所知,那么在你认真地阅读了全文后必将变成一个推送老手,你将会对其中的各种细节和原理有充分的理解.以下是 pikacod ...
- iOS 推送全解析,你不可不知的所有 Tips!
本文旨在对 iOS 推送进行一个完整的剖析,如果你之前对推送一无所知,那么在你认真地阅读了全文后必将变成一个推送老手,你将会对其中的各种细节和原理有充分的理解.以下是 pikacode 使用 iOS ...
- iOS 远程推送消息解析及逻辑处理
关于远程推送的相关配置网上已经有足够多的教程,这里就不复述了.这里讲述当客户端收到推送消息后,应怎样对其进行相应的逻辑处理. 工程的AppDelegate.m文件里提供了如下方法: //当应用程序启动 ...
- iOS 10 推送全解析,注意事项
本文旨在对 iOS 推送进行一个完整的剖析,如果你之前对推送一无所知,那么在你认真地阅读了全文后必将变成一个推送老手,你将会对其中的各种细节和原理有充分的理解.以下是 pikacode 使用 iOS ...
随机推荐
- Android开发8:数据存储(二)——SQLite数据库和ContentProvider的使用
前言 啦啦啦各位小伙伴们许久不见了~学期末和过年期间自己忙着做其他事没能及时更新Android开发系列课程的博客,实在是罪过罪过~ 好啦~废话不多说,进入我们今天的主题.今天我们将和大家学习其他的数据 ...
- 利用AForge.NET 调用电脑摄像头进行拍照
当然了,你需要去官网下载类库,http://www.aforgenet.com/ 调用本机摄像头常用的组件: AForge AForge.Controls AForge.Imaging AForge. ...
- java常见文件操作
收集整理的java常见文件操作,方便平时使用: //1.创建文件夹 //import java.io.*; File myFolderPath = new File(str1); try { if ( ...
- 自行搭建私有云ownCloud,启用SSL,其他配置
ownCloud简介 ownCloud(官网)是一款开源的私有云框架,可以通过它实现个人网盘的功能,如果拥有一个性能不错的VPS,那么就可以摆脱奇慢无比的百度云等网盘啦!我花了大约一天的时间总算搭好了 ...
- 【转】svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted
svn提交遇到恶心的问题,可能是因为上次cleanup中断后,进入死循环了. 错误如下 解决方法:清空svn的队列 1.下载sqlite3.exe 2.找到你项目的.svn文件,查看是否存在wc.db ...
- 在Azure上部署带有GPU的深度学习虚拟机
1. 登录https://portal.azure.com 2. 点击"+创建",在弹出的页面搜索"deep learning toolkit for the DSVM& ...
- Java创建对象的几种方式
解析:Java创建对象的几种方式(重要):(1) 用new语句创建对象,这是最常见的创建对象的方法.(2) 运用反射手段,调用java.lang.Class或者java.lang.reflect.Co ...
- Javascript原型链和原型继承
哇好久都没有写随笔啦,整个人都慵懒啦. 为了不让大家忘记我,把以前写过的一些慢慢发出来. 在JS 中, 有两条链子,作用域链 和 原型链. 作用域链相对容易理解,两点 - 函数限定变量作用域,就是说, ...
- 自学html5要花多长时间
自学html5培训课程对于没有基础的那么就需要从头开始学,主要包括以下几方面 1. PC端网页制作基础,包括css,html 2. Javascript.jquery 主要是写一些动效 3. 学习UI ...
- ER图是啥?
文章转载自「开发者圆桌」一个关于开发者入门.进阶.踩坑的微信公众号 E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型.属性和联系的方法,用来描述现 ...