Android使用FireBase推送
2020-02-14 本文已影响0人
7570146919ac
须知:本文所提到的链接需要科学上网,自行想办法咯
认识FCM
FireBase官网## 标题 ##
Google自己维护一套推送系统,境外开发者基本推送走的是Google的服务,但是由于哈哈哈哈的关系,在国内我们无法使用Google的服务,收不到Google的推送,也因此特殊环境下第三方推送群起,但是强杀之后收到离线消息依然弱爆,除了Google。
Google以前的推送叫GCM,后来收购FireBase退出的FCM是GCM的升级版,本质用的还是GCM.
FireBase为开发团队提供了云托管、机器学习、身份验证、性能监控、谷歌分析和云消息传递等,鉴于公司的海外项目需要开发消息推送功能,而国内第三方和BAT大厂的推送受限性,考虑使用FireBase的云消息传递(Cloud Message/FCM(ClodeMessage官方文档))来满足需求。
想要使用FCM需要满足几个条件:
- 设备必须是android4.0以上,Google Play Service 必须是11.2.0以上版本
- Android SDK Manager 必须有Google Play service SDK
- Android Studio 必须是1.5以上版本
后台接入FireBase管理后台接入
Android接入FireBase CloudMessage
设置FireBase和FCM SDK
- 将FireBase添加到您的Android项目配置Android应用并下载google-service.json文件
- 请务必在项目级别build.gradle文件中的buildscript和allprojects部分添加Google的Maven代码库
classpath 'com.google.gms:google-services:4.1.0'
- 请将Android版云消息传递库的依赖项添加到模块级别(一般是app)的build.gradle文件中
apply plugin: 'com.google.gms.google-services'
dependencies {
...
implementation 'com.google.firebase:firebase-messaging:20.0.0'
}
- 添加两个Service
在配置文件(AndroidManifest)中添加
<service
android:name=".MyFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
<service
android:name=".MyFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
项目中新建MyFirebaseMessagingService继承于FirebaseInstanceIdService:
public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {
}
新建MyFirebaseMessagingService继承于FirebaseMessagingService:
public class MyFirebaseMessagingService extends FirebaseMessagingService {
}
以上便完成Android的集成了