当前位置: 首页 > 知识库问答 >
问题:

模拟器上未收到基于火堆的消息

谷光誉
2023-03-14

我按照 https://stackoverflow.com/a/38626398/565212 中的说明将SNS连接到FCM到Android应用程序。部署到模拟器时,应用将初始化,但不会收到任何消息。同一应用程序在我实际的Nexus 6设备上正常工作并接收消息。为什么会有这种差异?

共有3个答案

丰誉
2023-03-14

这个答案写于2021年9月,具有以下等级依赖关系:

    implementation 'com.google.firebase:firebase-messaging:22.0.0'
implementation 'com.google.firebase:firebase-iid:21.1.0'

有时,仿真器停止接收FCM通知,下面是我解决它的方法:

1-选择带有Google API的模拟器。

2-擦除数据:

3-使用以下函数获取多播ID,或获取注册失败的原因。

  private void check_token() {
    String TAG = "_testing";
    FirebaseInstanceId.getInstance().getInstanceId()
            .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
                @Override
                public void onComplete(@NonNull Task<InstanceIdResult> task) {
                    if (!task.isSuccessful()) {
                        Log.e(TAG, "getInstanceId failed", task.getException());
                        return;
                    }

                    // Get new Instance ID token
                    String token = task.getResult().getToken();

                    // Log and toast
                    //  String msg = getString(R.string.msg_token_fmt, token);
                    Log.e(TAG, token);
                    Toast.makeText(MainActivity3.this, token, Toast.LENGTH_SHORT).show();
                }
            });
}

获得令牌后,您可以尝试发送通知消息。

注意:无需使用google帐户登录。FCM在没有gmail登录的情况下工作。

傅砚
2023-03-14

因为模拟器没有谷歌的api。因此,要检查通知或消息,您必须在安装了Google服务的真实设备上进行检查。

对于GCM等Google服务,使用“Google API”(任何版本)目标来接收来自fcm的推送通知或消息

田焕
2023-03-14

模拟器安装了Google Play服务吗?

来源: https://firebase.google.com/docs/cloud-messaging/android/client#sample-play

依赖 Play 服务 SDK 的应用在访问谷歌 Play 服务功能之前,应始终检查设备中是否有兼容的谷歌播放服务 APK。建议在两个位置执行此操作:在主活动的 onCreate() 方法中,以及在其 onResume() 方法中。在Create() 上签入可确保在未成功检查的情况下无法使用应用。签入 onResume() 可确保如果用户通过其他方式(如通过后退按钮)返回到正在运行的应用,则仍会执行检查。

如果设备没有兼容版本的Google Play服务,您的应用可以调用GoogleApiAvailability.makeGooglePlayServicesAvailable()以允许用户从Play商店下载Google Play服务。

 类似资料:
  • 我的LocalBroadcastManager回调函数不接收消息。有人能告诉我为什么吗? 我尝试在我的三星Galaxy S3 mini(4.1.2-Jelly Bean,API 16)上实现这一点。 SenderClass: 主要活动 编辑:这是清单 显示

  • 我正在接收令牌,但当我从Firebase控制台发送通知时,我的设备上不会发生任何事情,无论应用是否处于后地。与此同时,我的Android应用程序收到通知。 我遵循了这个指南: https://firebase.google.com/docs/cloud-messaging/ios/client 为了确保这一点,我还在 https://github.com/firebase/quickstart-i

  • 我试图连接代码点火器的电子邮件库到一个电子邮件帐户,我已经通过Godaddy创建。我试图通过SMTP主机发送邮件。据我所知,我的所有信息都是正确的,因为调试提到正在发送电子邮件。我想知道我是否在我的SMTP头中丢失了任何东西,以便在收件人的邮件服务器上正确接收。这里是调试: 会告诉我我的两封电子邮件都有效吗?事实上,我收到了一条成功消息(调试进行到一半),这意味着电子邮件已经成功发送。检查我的Go

  • 通知处理程序 邮递https://fcm.googleapis.com/fcm/send 当我发送通知与有效载荷上面,通知交付到系统托盘,当我点击它,我有以下三种情况: 应用程序处于后台(关闭/终止),显示“数据”并调用onLaunch方法。 问题是,如何接收或处理带有通知的“数据”也发送到系统托盘?任何帮助都将不胜感激。

  • 我自己用得操作系统是ubuntu,我想要开发一个react native app,我想问在ubuntu系统分别用什么模拟器跑android和ios的打包文件。 或者react native基于linux有什么好的开发调试工具推荐。 感谢。

  • 我正在使用以下在docker上运行kafka、zookeeper和kafdrop: 我有一个具有以下配置的Spring Boot Producer应用程序-: 在我的中,我有以下内容: 这是一个单独的应用程序,我在我的服务中这样称呼Kafka制作人: 在一个完全不同的spring引导应用程序中,我有一个像这样的使用者: 我可以看到消费者正在连接到代理,但是有消息的日志。下面是我能看到的完整日志: