集成环信FCM推送

1.firebase官网选择我们自己创建的项目

2.点到这个设置按键

3.我们打开到项目设置->常规 拉到最下面有一个“您的应用” 点击下载json文件,json文件的使用是客户端放在安卓项目的app目录下

4.首先环信需要的信息有 项目设置中-> 服务账号 生成新的私钥 生成的文件我们要上传到环信的管理后台证书部分(V1)

 

5.打开环信管理后台上传环信的证书 上传证书
6.点击上传证书会选择你下载的文件,注意!! 名称是由你设置的项目名称的json文件 并不是 google-services.json

7.项目名称 是你的发送者ID 这个id 我们在firebase官网中的项目设置-〉常规 -〉您的项目->的项目编号就是您的SenderID 填写到环信官网即可 另外客户端的 google-services.json 这个文件 打开后 project number 也是SenderID

8.将我们下载好的 google-services.json 文件放到app的目录下 (文件获取可以反回步骤3 查看)

9.打开build的根目录添加 :

buildscript { dependencies { // classpath 'com.android.tools.build:gradle:7.2.2' classpath 'com.google.gms:google-services:4.3.8' } }

10.app部分添加:

implementation platform('com.google.firebase:firebase-bom:28.4.1')

 implementation 'com.google.firebase:firebase-messaging'

11.对应好appkey 以及我们的客户端初始化fcm的senderID


12.在登陆初始化以后 添加以下代码:

EMPushHelper.getInstance().setPushListener(new PushListener() {
    @Override
    public void onError(EMPushType pushType, long errorCode) {
        EMLog.e("PushClient", "Push client occur a error: " + pushType + " - " + errorCode);
    }

    @Override
    public boolean isSupportPush(EMPushType pushType, EMPushConfig pushConfig) {
        if(pushType==EMPushType.FCM)
        {
            return GoogleApiAvailabilityLight.getInstance().isGooglePlayServicesAvailable(MainActivity.this)
                    == ConnectionResult.SUCCESS;
        }
        return super.isSupportPush(pushType, pushConfig);
    }
});

13.登陆成功后的第一个页面添加:

       if(GoogleApiAvailabilityLight.getInstance().isGooglePlayServicesAvailable(NewAcitivty.this) != ConnectionResult.SUCCESS) {
                    return;
                }
                FirebaseMessaging.getInstance().getToken().addOnCompleteListener(new OnCompleteListener<String>() {
                    @Override
                    public void onComplete(@NonNull Task<String> task) {
                        if (!task.isSuccessful()) {
                            EMLog.d("PushClient", "Fetching FCM registration token failed:"+task.getException());
                            return;
                        }
// 获取新的 FCM 注册 token
                        String token = task.getResult();
                        EMClient.getInstance().sendFCMTokenToServer(token);
                    }
                });

 

14.清单文件注册sevices 主要是为了继承FCM的服务 必要操作!

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

添加代码: 重写onMessageReceived

收到消息后 就在这个方法中 自己调用 本地通知 原生Google手机自带通知栏可以展示

public class FireBaseservice extends FirebaseMessagingService {
    @Override
    public void onMessageReceived(@NonNull RemoteMessage message) {
        super.onMessageReceived(message);
        if (message.getData().size() > 0) {
            String alter = message.getData().get("alter");
            Log.d("", "onMessageReceived: " + alter);
        }

    }
    @Override
    public void onNewToken(@NonNull String token) {
        Log.i("MessagingService", "onNewToken: " + token);
        // 若要对该应用实例发送消息或管理服务端的应用订阅,将 FCM 注册 token 发送至你的应用服务器。
        if(EMClient.getInstance().isSdkInited()) {
            EMClient.getInstance().sendFCMTokenToServer(token);
        }
    }

15.检查错误 看到提示了com.xxxx.play 安装 这个是因为 你的设备没有打开 VPN 或者VPN不稳定,所以你首先要确定VPN打开并且 稳定 然后我们在重新登录测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值