Google推送的集成使用介绍

Google在2016年I/O大会上,宣布了全新的Firebase,Google推送服务也停止更新,全面集成到FireBase中。下面简要介绍下Android端firebase推送的使用:

1、首先登陆Firebase官网

理所当然,你需要学习*。

官网地址: https://firebase.google.com/

2、登陆google账号

没有的可以在官网进行免费注册,注册步骤这里就不赘述了。

3、创建项目

如图所示:起一个项目名地区可以选择美国等有google服务的地区

Google推送的集成使用介绍

4、创建项目后,创建应用

如下图所示:创建一个你准备使用推送功能的Android应用

Google推送的集成使用介绍

Google推送的集成使用介绍

这里,需要获取到SHA1,详细说下SHA1的获取步骤:

(1) 这里使用的是JRE中的keytool,首先,在JRE安装文件夹bin目录下找到keytool.exe,以管理员模式运行。

(2) 打开windows的cmd.exe,键入

Google推送的集成使用介绍

注意:路径要根据自己的.android文件夹的位置进行调整

(3) 默认的Android Studio的keystore的密令是android

(4) 键入密令后获得SHA1

Google推送的集成使用介绍

5、点击添加应用

点击之后会自动下载一个名称为google-services.json的文件,这个是和应用关联的配置文件。这个文件要放置到模块的根目录下:

Google推送的集成使用介绍

6、进行项目环境的配置

首先,在项目的build.gradle文件添加一条规则,以包含Google服务插件:

Google推送的集成使用介绍

然后,在app(或需要使用的模块中)的build.gradle文件中,在底部添加 apply plugin 行,以启动Gradle插件,同时还应该为自己需要实用的功能添加依赖,如下图中,添加了firebase的Analytics框架。如果是要使用推送功能,应该添加

compile ‘com.google.firebase:firebase-messaging:9.6.1’ (注意:此版本可能不是最新,建议查看官方)

Google推送的集成使用介绍

7、添加代码,处理消息

AppFireBaseInstanceIDService是用来获取设备token上传给你自己的服务器的,服务器拿着token去给FireBase的平台传送需要推的消息。 AppFirebaMessagingService是用来处理前台消息的。这里特别说明下,谷歌推送将推送消息分为两种:一种是你的app运行在前台时,一种是你的app运行在后台或关闭时。
Google推送的集成使用介绍

Google推送的集成使用介绍

8、特别注意

1、想要保证firebase能够正常集成到app中,就需要保证你的手机一定要有google play service,并且版本要高于sdk的版本或者相同。这个可以到Google商店里去下载安装。

2、在第7项展示的代码中仅包含了app处于前台时的推送消息的处理,关于后台消息的处理,可以参考: https://firebase.google.com/docs/notifications/android/console-device

3、如果你需要点击推送后跳转到特定界面,你可以在消息负载notification中添加一个click_action字段(需要在服务器端进行设置)。然后将其映射至你想启动的 Activity 中的 Intent 过滤器。例如,将 click_action 设为 OPEN_ACTIVITY_1 会触发类似于如下的 Intent 过滤器:

<intent-filter>
    <action android:name="OPEN_ACTIVITY_1" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

有关服务器端推送消息语法可以参考下面链接中的表1:

https://firebase.google.com/docs/cloud-messaging/http-server-ref#notification-payload-support

4、如果想要在后台消息中显示应用图标,而不是使用默认显示,这同样需要在服务器端的消息负载notification中添加一个icon字段和color字段,同时,还需要在app的manifest文件中指明图标:

 <meta-data
     android:name="com.google.firebase.messaging.default_notification_icon"
     android:resource="@drawable/ic_alpha_logo"
....

5、当然,最最重要的一点,你的手机已经*,*,*!