返回

如何在 Android 客户端使用 FCM 将上游消息发送到特定设备?

Android

使用 FCM 向特定设备发送上游消息:Android 客户端指南

引言

Firebase 云消息 (FCM) 是一个广泛使用的平台,可用于向移动设备发送消息。除了向应用程序发送下游消息外,您还可以使用 FCM 发送上游消息。本文将深入探讨如何从 Android 客户端发送上游消息,重点介绍如何将消息定向到特定设备。

发送上游消息

要从 Android 客户端发送上游消息,您需要执行以下步骤:

1. 获取 FirebaseMessaging 实例

首先,您需要获取 FirebaseMessaging 实例。

FirebaseMessaging fm = FirebaseMessaging.getInstance();

2. 构建 RemoteMessage

接下来,构建 RemoteMessage 对象,该对象定义了消息的内容和目标。

fm.send(new RemoteMessage.Builder(SENDER_ID + "@gcm.googleapis.com")
        .setMessageId(Long.toString(Calendar.getInstance().getTimeInMillis()))
        .addData("my_message", "Find my phone")
        .addData("my_action", "FIND_MY_PHONE")
        .build());
  • SENDER_ID 是您的 Firebase 项目的发送者 ID。
  • my_message 是要发送的消息。
  • my_action 是要执行的动作。

3. 将消息发送到特定设备

要将消息发送到特定设备,请在 RemoteMessage.Builder 中指定设备的注册令牌。

fm.send(new RemoteMessage.Builder(SENDER_ID + "@gcm.googleapis.com")
        .setMessageId(Long.toString(Calendar.getInstance().getTimeInMillis()))
        .addData("my_message", "Find my phone")
        .addData("my_action", "FIND_MY_PHONE")
        .setTo(registration_token)
        .build());
  • registration_token 是您想要向其发送消息的设备的注册令牌。

代码示例

以下代码示例演示了如何从 Android 客户端向特定设备发送上游消息:

FirebaseMessaging fm = FirebaseMessaging.getInstance();

String registration_token = "YOUR_REGISTRATION_TOKEN";

fm.send(new RemoteMessage.Builder(SENDER_ID + "@gcm.googleapis.com")
        .setMessageId(Long.toString(Calendar.getInstance().getTimeInMillis()))
        .addData("my_message", "Find my phone")
        .addData("my_action", "FIND_MY_PHONE")
        .setTo(registration_token)
        .build());

结语

掌握这些步骤,您就可以轻松地从 Android 客户端使用 FCM 发送上游消息到特定设备。此功能对于远程操作和与移动设备进行交互至关重要。

常见问题解答

  • 如何获取设备的注册令牌?

您可以使用 Firebase Instance ID API 获取设备的注册令牌。

  • 可以向多少台设备发送上游消息?

您可以向每次请求最多 100 台设备发送上游消息。

  • 消息需要多长时间才能到达设备?

通常,消息会在几秒钟内到达设备。

  • 可以附加数据到上游消息吗?

是的,您可以使用 addData() 方法附加数据到 RemoteMessage 对象。

  • 如何处理上游消息?

您可以在 onMessageReceived() 回调中处理上游消息。