Migrate a GCM Client App for Android to Firebase Cloud Messaging
Set Up a Firebase Cloud Messaging Client App on Android
Firebase Quickstart Samples for Android
Google 推出 FCM 後,一直鼓勵開發者自 GCM 移轉至 FCM,也致力簡化步驟,減少開發者在移植過程中所花費的功夫與時間。
登入 Firebase Console(主控台)
點擊 "匯入 GOOGLE 專案"
點選您要匯入 FCM 的 GCM 專案
→ "新增 FIREBASE" 鈕
點選 "將 Firebase 加入您的 Android 應用程式"
輸入您的 app 的完整的 package 名
→ 註冊應用程式
FCM 主控台會自動為您產生一個 google-services.json 檔,將它下載並存放於您的 app 專案的目錄下
修改 build.gradle
專案層級的 build.gradle
- buildscript {
- ...
- ...
- dependencies {
- classpath 'com.android.tools.build:gradle:2.3.3'
- classpath 'com.google.gms:google-services:3.0.0'
- }
- }
- ...
- ...
應用程式階層 build.gradle
- ...
- ...
- dependencies {
- ...
- ...
- implementation 'com.google.firebase:firebase-core:10.2.1'
- implementation 'com.google.firebase:firebase-messaging:10.2.1'
- }
- // 寫在最末列
- apply plugin: 'com.google.gms.google-services'
修改 AndroidMainfest.xml,移除之前與 GCM 有關的所有設定,因為這些工作,FCM
都包辦了。
- <!-- 移除(或註解) 下述設定 -->
- <!-- <permission
- android:name="com.example.permission.C2D_MESSAGE"
- android:protectionLevel="signature" />
- <uses-permission android:name="com.example.permission.C2D_MESSAGE" />
- -->
- <!-- App receives GCM messages. -->
- <!--
- <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
- -->
- <uses-permission android:name="android.permission.INTERNET" />
- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
- ...
- ...
- <application
- ...
- ... >
- <!-- 收到通知時, 到狀態列要顯示的 icon -->
- <meta-data
- android:name="com.google.firebase.messaging.default_notification_icon"
- android:resource="@drawable/ic_oracle" />
- <!-- 收到通知的背景色 -->
- <meta-data
- android:name="com.google.firebase.messaging.default_notification_color"
- android:resource="@color/black" />
- ...
- ...
- <!-- 移除(或註解) 下述設定 -->
- <!-- 接收 GCM 的 receiver -->
- <!--
- <receiver
- android:name="com.google.android.gcm.GCMBroadcastReceiver"
- android:permission="com.google.android.c2dm.permission.SEND" >
- <intent-filter>
- <action android:name="com.google.android.c2dm.intent.RECEIVE" />
- <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
- <category android:name="com.example" />
- </intent-filter>
- </receiver>
- -->
- <!-- GCM service -->
- <!--
- <service android:name="com.example.GCMIntentService" />
- -->
原本的 GCMIntentService、ServerUtilities.java (參考 【Android】使用 GCM(Google Cloud Messaging) 這篇筆記)都可以移除,不需要了。
在實體機第一次執行 APP 後,關閉 APP,版本為 Oreo(8.0)(含) 以上的實體機,還要在 "自啟動管理" 開啟 APP 的自啟動選項,才能收到通知。
再回到 FCM console
→ Notification
→ 新增訊息
輸入要推播的訊息內容
過一會兒後,裝置就會收到通知了。
點擊已發送的記錄,還可以看到發送統計。
相關筆記 ----
【Android】使用 GCM(Google Cloud Messaging)
【Android Studio】GCM client 端設定 - 速成篇