轉載請註明出處:http://www.cnblogs.com/cnwutianhao/p/6664293.html 應該是目前為止全網最詳細的GCM推送解析。 GCM官方解釋: https://developers.google.cn/cloud-messaging/?hl=zh-cn Send d ...
轉載請註明出處: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推送成功!
關註我的新浪微博,獲取更多Android開發資訊!
關註科技評論家,領略科技、創新、教育以及最大化人類智慧與想象力!