基于 FCM 的通知演示

此示例显示如何使用 Firebase 云消息传递(FCM)平台。FCM 是 Google Cloud Messaging(GCM) 的后续产品。它不需要来自应用用户的 C2D_MESSAGE 权限。

集成 FCM 的步骤如下。

  1. 在 Android Studio 中创建示例 hello world 项目你的 Android 工作室屏幕将如下图所示。 StackOverflow 文档

  2. 下一步是设置 firebase 项目。访问 ![StackOverflow 文档](https://console.firebase.google.com> 并创建一个名称相同的项目,以便你轻松跟踪。 <https://i.stack.imgur.com/sK4vn.png)

  3. 现在是时候将 firebase 添加到刚刚创建的示例 android 项目中了。你将需要项目的包名称和调试签名证书 SHA-1(可选)。

    一个。包名称 - 可以从 android 清单 XML 文件中找到。

    湾调试签名 SHA-1 证书 - 可以通过在终端中运行以下命令找到它。

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

在 firebase 控制台中输入此信息,并将该应用程序添加到 firebase 项目中。单击添加应用程序按钮后,你的浏览器将自动下载名为“google-services.json”的 JSON 文件。

  1. 现在将刚刚下载的 google-services.json 文件复制到 Android 应用模块根目录中。 StackOverflow 文档

  2. 在你继续操作时,请按照 firebase 控制台上给出的说明进行操作。一个。将以下代码行添加到项目级 build.gradle 中

    dependencies{ classpath 'com.google.gms:google-services:3.1.0' .....

    湾在应用级 build.gradle 的末尾添加以下代码行。

        //following are the dependencies to be added
        compile 'com.google.firebase:firebase-messaging:11.0.4'
        compile 'com.android.support:multidex:1.0.1'
    }
    // this line goes to the end of the file
    apply plugin: 'com.google.gms.google-services'
    

    C。Android 工作室会要求你同步项目。点击立即同步。

  3. 下一个任务是添加两个服务。一个。一个使用 intent-filter 扩展 FirebaseMessagingService,如下所示

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

    湾一个扩展 FirebaseInstanceIDService。

    <intent-filter>
        <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
    </intent-filter>
    
  4. FirebaseMessagingService 代码应如下所示。

    import android.app.Service;
    import android.content.Intent;
    import android.os.IBinder;
    
    import com.google.firebase.messaging.FirebaseMessagingService;
    
    public class MyFirebaseMessagingService extends FirebaseMessagingService {
        public MyFirebaseMessagingService() {
        }
    }
    
  5. FirebaseInstanceIdService 应该如下所示。

    import android.app.Service;
    import android.content.Intent;
    import android.os.IBinder;
    
    import com.google.firebase.iid.FirebaseInstanceIdService;
    
    public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {
        public MyFirebaseInstanceIDService() {
        }
    }
    
  6. 现在是时候捕获设备注册令牌了。将以下代码行添加到 MainActivity 的 onCreate 方法中。

    String token = FirebaseInstanceId.getInstance().getToken();
    Log.d("FCMAPP", "Token is "+token);
    
  7. 获得访问令牌后,我们可以使用 firebase 控制台发送通知。在 Android 手机上运行应用程序。 StackOverflow 文档

点击 Firebase 控制台中的通知,用户界面将帮助你发送第一条消息。Firebase 提供向单个设备发送消息的功能(通过使用我们捕获的设备令牌 ID)或使用我们的应用程序或特定用户组的所有用户。发送第一条消息后,你的移动屏幕应如下所示。

StackOverflow 文档

谢谢