基于 FCM 的通知演示
此示例显示如何使用 Firebase 云消息传递(FCM)平台。FCM 是 Google Cloud Messaging(GCM)
的后续产品。它不需要来自应用用户的 C2D_MESSAGE 权限。
集成 FCM 的步骤如下。
-
在 Android Studio 中创建示例 hello world 项目你的 Android 工作室屏幕将如下图所示。
-
下一步是设置 firebase 项目。访问 ![StackOverflow 文档](https://console.firebase.google.com> 并创建一个名称相同的项目,以便你轻松跟踪。 <https://i.stack.imgur.com/sK4vn.png)
-
现在是时候将 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 文件。
-
现在将刚刚下载的 google-services.json 文件复制到 Android 应用模块根目录中。
-
在你继续操作时,请按照 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 工作室会要求你同步项目。点击立即同步。
-
下一个任务是添加两个服务。一个。一个使用 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>
-
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() { } }
-
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() { } }
-
现在是时候捕获设备注册令牌了。将以下代码行添加到 MainActivity 的 onCreate 方法中。
String token = FirebaseInstanceId.getInstance().getToken(); Log.d("FCMAPP", "Token is "+token);
-
获得访问令牌后,我们可以使用 firebase 控制台发送通知。在 Android 手机上运行应用程序。
点击 Firebase 控制台中的通知,用户界面将帮助你发送第一条消息。Firebase 提供向单个设备发送消息的功能(通过使用我们捕获的设备令牌 ID)或使用我们的应用程序或特定用户组的所有用户。发送第一条消息后,你的移动屏幕应如下所示。
谢谢