美文网首页
记一次FCM推送集成

记一次FCM推送集成

作者: Max247 | 来源:发表于2019-10-15 18:11 被阅读0次

    记录一次FCM推送集成的步骤.(若有遗漏或错误,以后再修改补充,欢迎评论里提出)

    1.首先得有一个谷歌开发者账号,详细注册步骤就略过了.

    2.打开Firebase控制台,选择创建一个新的项目.

    图1 创建新的项目

    (1)输入项目名称

    图2 输入项目名称

    (2)为项目设置Google Analytics, 这个看自己需不需要设置吧, 本次只是Demo所以没有设置.

    图3 启用Google Analytics

    (3)创建完成.如果上一步启用了分析,则还有第3步的设置,应该也不难设置的,看着办吧.

    图4 创建成功

    3.创建完成项目后,点击进入项目,选择左侧菜单Cloud Messaging进入推送相关页面.

    图5 Cloud Messaging入口

    在Cloud Messaging页面,可以查看文档了解下如果接入FCM推送(下方箭头),或者开始接入(上方箭头).

    图6 Cloud Messaging页面

    4.开始添加Firebase

    (1)输入application id(必填)、应用别名和SHA-1(选填)

    图7 添加Firebase第1步

    (2)下载json文件,并放到项目指定位置.

    图8 添加Firebase第2步

    (3)添加Firebase SDK.
    本次项目级build.gradle中dependencies添加的是 classpath'com.google.gms:google-services:4.2.0' ,而应用级dependencies中添加的是implementation'com.google.firebase:firebase-messaging:17.4.0'.

    图9 添加Firebase第3步

    (4)添加完成.

    图10 添加Firebase完成 图11 推送消息页面入口

    5.代码部分

    首先想办法获取FCM推送必须的Token.

    
    FirebaseInstanceId.getInstance().getInstanceId().addOnCompleteListener(new OnCompleteListener() {
        @Override
        public void onComplete(@NonNull Task task) {
          if (!task.isSuccessful()) {
            Log.w(TAG, "fcm get instance id failed: " + task.getException());
            return;
            }
            InstanceIdResult result = task.getResult();
            if (result !=null) {
              String token = result.getToken();
              Log.d(TAG, "fcm token: " + token);
            }
    }});
    

    然后新建一类继承FirebaseMessagingService,其中onMessageReceived就能监听推送过来的消息.

    
    public class FcmReceiverService extends FirebaseMessagingService {
        @Override
        public void onMessageReceived(RemoteMessage remoteMessage) {
            super.onMessageReceived(remoteMessage);
            Log.d("FcmReceiverService", "onMessageReceived");
        }
    }
    

    之后在Manifest中配置下这个Service,然后就可以开始测试了.

    <service
        android:name=".FcmReceiverService"
        android:exported="false">
            <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
    </service>
    

    6.测试部分

    图12 测试步骤

    如图11所示点击进入推送页面,按照图12步骤:①输入推送标题②输入推送内容③发送测试消息④添加FCM注册令牌,就是上面代码里获取到的Token⑤添加之后点击测试.就可以在onMessageReceived方法中监听到推送消息.

    如果杀死应用后测试,会默认在通知栏弹出一条通知.

    注意,FCM推送测试需要网络能够翻墙,而且手机设备有Google Play Service.(笔者自己使用的是模拟器,有翻墙工具)

    相关文章

      网友评论

          本文标题:记一次FCM推送集成

          本文链接:https://www.haomeiwen.com/subject/okzsmctx.html