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 端設定 - 速成篇