google的GCM推送使用简介

本文详细介绍了如何在Android应用中使用Google Cloud Messaging(GCM)实现消息推送。GCM允许服务器和客户端间传递消息,即使应用未运行。教程涵盖GCM的基本概念、客户端使用步骤,包括注册应用、添加依赖、获取和刷新token,以及处理服务器下发信息的方法。同时,提到了GCM的HTTP POST Request和XMPP Message两种消息推送方式。
摘要由CSDN通过智能技术生成

转载请注明出处:http://blog.csdn.net/newhope1106/article/details/54709916

GCM即Google Cloud Messaging,主要用于消息推送的,即使在应用没有起来的情况下,客户端也能通过GCM收到来自服务器的消息。GCM支持Android、IOS和Chrome。由于GCM需要google service支持,在国内基本不能用,经常会断线,不过最近项目要求,只在美国上线该项目,因此可以采用GCM实现推送的方式,国内相关文章较少,特意整理了一下客户端使用的官方文档。

首先来看看目前应用不启动实现推送的方式有哪些:

1.使用Google自带的GCM实现推送

2.采用监听开机广播的方式,启动后台服务,为了防止被杀死,采用多进程的方式,监听服务是否被杀,被杀之后,把它拉起来(比较流氓)

3.采用第三发方案,如友盟、极光、信鸽

国内第二种和第三种用得比较多,本文主要讲解第一种方案,也就是GCM,以下内容均来自官网

一、概述

GCM可以让开发者在客户端和服务器之间传递消息,有2种方式实现消息推送,一种是xmpp,它即可让服务器把消息推送给客户端,也可让客户端把消息推送给服务器,另一种方式是http,只能服务器将消息推送给客户端,以下是其架构图。


GCM服务器接收应用服务器的消息,然后再把消息转发给客户端,服务器端根据自己的需要实现xmpp或者http接口,和GCM服务器进行通信,客户端想要接收消息,需要使用GCM提供的API。

二.客户端使用GCM

1.使用限制:

a.最低要求Android 2.2+的设备,并且安装了Google应用商店

b.想要使用GCM新特性,要求Android 2.3+

c.低于Android 4.0.4版本,需要Google账号,Android 4.0.4+不需要

2.客户端使用GCM流程

和使用一般的sdk类似,首先需要在官网注册自己的应用,获取一个appid,出于安全要求,需要在本地使用这个appid去获取动态token,需要把token上传给服务器,每隔一段时间token可能会失效,需要去重新获取token。按照上面的过程我们来看看怎么使用的。以下针对Android Studio开发的。

(1)官网注册应用

首先我们需要到这个网址:https://console.firebase.google.com/ 去注册自己的应用,按照相关步骤操作之后,点击下载配置文件,会下载一个叫google-services.json的文件,把它放到自己的项目的app/目录下。

(2)添加配置文件解析插件依赖

上述下载的google-services.json需要插件进行解析,要在项目中按照下面步骤添加依赖

a.在项目级别(project-level)的build.gradle添加下面依赖

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

b.在自己的应用级别(app-level)的build.gradle添加下面插件

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

(3)添加GCM依赖

代码中需要用到gcm的api,因此需要添加gcm的依赖,版本请使用最新的版本,下面只是示范

dependencies {
   
  compile
"com.google.android.gms:play-services-gcm:10.0.0"
}

(4)修改AndroidMenifest.xml文件

a.添加权限,因为我们不允许其他的应用接收和发送属于自己应用的消息,因此添加权限屏蔽其他应用,权限格式:<application-package-name> + ".permission.C2D_MESSAGE"

b.定义一个GcmReceiver接收器,用来接收发送给应用的消息,需要添加com.google.android.c2dm.permission.SEND权限

c.定义GcmListenerService服务器,用来处理各种不同的下发信息,上发状态,自动显示通知等

d.定义一个集成InstanceIDListenerService的服务,用来获取、刷新token

e.额外的,可以添加android.permission.WAKE_LOCK权限,保证消息到达的时候,可以得到及时处理

以下是一个demo

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值