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

BroadcastRecencer使用什么Firebase云消息传递Intent-filter?

施轶
2023-03-14

我试图让Android BroadcastReceiver在Android系统收到Firebase云消息通知时运行。

public class MyBroadcastReceiver extends BroadcastReceiver {

private static final String TAG = "MyBroadcastReceiver";

@Override
public void onReceive(final Context context, Intent intent) {


    Toast.makeText(context, "EVENT OCCURED", Toast.LENGTH_LONG).show();

   }
}

AndroidManifest中需要指定如下接收器标记:

    <receiver
        android:name=".MyBroadcastReceiver"  android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </receiver>

正如您在上面的清单中看到的,我添加了:

<action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>

确保当我将电缆插入Android设备时,BroadcastReceiver启动。它工作得很好。

因此,问题在于:

<action android:name="com.google.firebase.MESSAGING_EVENT" />

BroadcastReceiver是否无法识别此意图筛选器操作?BroadcastReceiver使用Firebase消息传递时是否有其他意图过滤器操作?

共有1个答案

伊俊能
2023-03-14

Android Intent消息传递系统在三个“通道”中处理Intents:活动、服务和BroadcastReceivers。发布Intent的方法指示通道类型:start Active()start Service()sendBroadcast()。使用start Service()发布的意图只会与服务的意图过滤器匹配。它不会针对活动和BroadcastReceivers进行测试

由于动作com.google.firebase.MESSAGING_EVENT通常由派生自Firebase MessagingService的服务接收,因此该动作必须是在服务通道中发布的。您将无法使用BroadcastRecencer接收它。

 类似资料:
  • 我必须在SpringJava中为多层架构制作一个RESTAPI,其中需要为Firebase云消息传递(FCM)构建DAO、控制器和服务管理器,以向android应用程序发送推送通知消息,但我无法在Java中配置服务器以向设备发送通知。我怎么能?

  • 我想使用谷歌的Firebase为网络构建一个消息应用程序。在这个应用程序中,用户应该向/从其他用户发送和接收消息。我检查了谷歌的Firebase网站,但我迷路了。你能告诉我从哪里开始吗?你能给我看任何与Firebase网络消息相关的教程或类似的东西吗?我欢迎任何建议。谢谢。

  • FCM服务未向我的iOS应用程序发送消息。 > App CAN成功接收APNs令牌和实例ID令牌 App CAN使用推送通知实用程序利用. p8令牌在后台成功接收来自APN的推送 #2中使用的相同APNs密钥上传到Firebase控制台 应用程序无法接收Firebase控制台中Notification Composer发送的消息,也无法使用CURL请求接收消息。 应用程序在通过FCM发送时不显示任

  • 我正试图将FCM与SNS整合。我在这个答案中读到设置应该与GCM相同。我设法创建了一个FCM应用程序,可以向android设备发送消息。当应用程序在后台时,设备在托盘中接收通知,或当应用程序在前台时打印接收的消息。我正试图整合它现在到SNS,但我似乎不能使它工作,没有任何错误信息。

  • 我试图从C#中的服务器发送推送通知,我使用了正确的注册令牌和API密钥,但仍然得到以下响应。 我按照这个网址来实现这个解决方案通过C#使用FCM(Firebase云消息传递)发送推送到Android 目前,我正在尝试向单个设备发送通知,但也希望同时向多个设备发送通知,我使用了url中给出的,但它不起作用。如果我必须同时向多个设备发送通知,我该怎么办? 这是我的密码

  • 我正在尝试使用FireBase云消息传递。我正在接收令牌,但它没有从控制台收到任何通知。这是我的舱单: 我的代码与示例中的代码几乎相同: 我在这里检查了一个问题,Firebase云消息通知未被设备接收,但仍然无法工作。