轉載請注明出處:http://www.cnblogs.com/cnwutianhao/p/6664293.html
應該是目前為止全網最詳細的GCM推送解析。
GCM官方解釋: https://developers.google.cn/cloud-messaging/?hl=zh-cn
Send data from your server to your users' devices, and receive messages from devices on the same connection. The GCM service handles all aspects of queueing of messages and delivery to client applications running on target devices, and it is completely free.
中文解釋:將數據從服務器發送到用戶設備,並從同一連接上的設備接收消息。 GCM服務處理消息排隊的所有方面,並將其傳遞到在目標設備上運行的客戶端應用程序,它是完全免費的。
1.申請GCM推送的網址:https://firebase.google.cn/ Google在2016年I/O大會推出的全新服務Firebase
點擊 "免費開始使用"(需要科學上網,你懂得)
2.進入到Firebase的使用界面
3.點擊 "新建項目"
4.創建好項目之后會出現如下界面
點擊 "將Firebase添加到您的Android應用"
5.將包名(package) 和 隨便起的應用別名填到下面的橫線處,點擊"REGISTER APP"
6.點擊 "Download google-services.json",把下載下來的.json文件拷貝到Project形式的app文件夾里面。點擊"繼續"
7.在工程里面添加相應的庫
①在工程里面找到 build.gradle(Project:項目名),在dependencies{}里面添加
classpath 'com.google.gms:google-services:3.0.0'
②在工程里面找到 build.gradle(Module:app),在最下面添加
apply plugin: 'com.google.gms.google-services'
點"完成"
8.點擊完成之后就會在概覽里面看到剛剛創建的項目
9.點擊左側的 "Notifications"
會出現如下界面:
10.點擊 "了解詳情",進入網頁 https://firebase.google.cn/docs/notifications/,網頁里面我們會看到 實現 GCM推送的流程
在網頁的最下面有Google官方提供的Demo鏈接地址https://github.com/firebase/quickstart-android/tree/master/messaging/
11.在build.gradle(Module:app)里面添加依賴庫(谷歌提供)
compile 'com.google.firebase:firebase-core:10.2.1'
compile 'com.google.firebase:firebase-messaging:10.2.1'
compile 'com.firebase:firebase-jobdispatcher:0.5.2'
12.修改工程代碼
①添加三個Service(Demo中給提供了,直接拷貝到項目里)文件到項目里
MyFirebaseInstanceIDService
MyFirebaseMessagingService
MyJobService
②修改AndroidManifest
1)添加聯網權限(官方Demo里竟然沒提到聯網權限,不知道何原因)
<uses-permission android:name="android.permission.INTERNET" />
2)將三個Service添加到配置文件里
13.發送通知
在第9步,點擊"發送您的第一條消息",在目標那欄選擇 "單個設備",這時候提示我們需要FCM注冊令牌,有些人就蒙了,這去哪里找,我們好像從來沒設置或者給過這個值。
運行項目(手機要科學上網,否則獲取不到FCM注冊令牌)
14. FCM注冊令牌
在MyFirebaseInstanceIDService里面谷歌已經給我們准備好了FCM注冊令牌的獲取方式
通過Log日志我的手機打印出來的FCM注冊令牌是
cwQxX20HqcE:APA91bGsPdGAPV79EIbwNgY08qbuMw-WBUdtJ0M6ALd-OxwAd0IL5EgnPYJqNfWwdY4Kev0FR5flb2odZlJyrDCnrHWXfbQot3cnBLiL-hqvhrGSb53AxGTpwxN37zSnTt0lAp-ZB-XV
將這個值添加到網頁FCM注冊令牌的輸入框內,點擊"發送消息"
網頁端顯示 已完成
手機通知欄就會有顯示(Nexus 6P)
證明GCM推送成功!