GCM(Google Cloud Messaging)推送完全解析

来源:http://www.cnblogs.com/cnwutianhao/archive/2017/04/04/6664293.html
-Advertisement-
Play Games

轉載請註明出處: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開發資訊!
關註科技評論家,領略科技、創新、教育以及最大化人類智慧與想象力!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • activity_main.xml arrays.xml: activity: ProcessView : ...
  • ListView想要添加headerview的話,就要通過addHeaderView這個方法,然後想要為ListView設置數據的話,就要調用setAdapter方法了。但是,在調用addHeaderView和setAdapter的順序上,有時會爆出Java.lang.IllegalStateExc ...
  • 在代碼中使用 listView .addHeaderView(...) 方法可以在ListView組件上方添加上其他組件,並且連結在一起像是一個新組件。如果多次使用 .addHeaderView(...) ,則最先添加的組件在最上方,按添加的先後順序由上到下羅列。 此時listView 的 posi ...
  • 餅圖模塊, 詳細模塊控制項封裝 餅圖封裝分為三個控制項. 餅圖控制項 描述控制項 餅圖控制項(左)描述控制項(右)整合 圖為將兩個控制項包裝好了以後的樣子稱為BigBackgroundView控制項 BigBackgroundView控制項: BigBackground控制項中提供的方法 從方法可以看出只要傳入pieV ...
  • Web New Year, New Blog Day 10 - Using JetBrains Rider with a .NET Core Console Application JavaScript Interview Day # 1: How to create a Class Using R... ...
  • 防止連續點擊的實現方式有很多種,比如,在所有的onclick裡面加上防多次點擊的代碼,或者定義一個新的OnClickListener,在裡面加上防多次點擊的代碼,然後項目中的所有OnClickListener都用這個listener,當然還有一些其他的方式,這裡將介紹一種新的方式來實現,那就是aop ...
  • 參考: "深入理解Android之AOP" AOP雖然是方法論,但就好像OOP中的Java一樣,一些先行者也開發了一套語言來支持AOP。目前用得比較火的就是AspectJ了,它是一種幾乎和Java完全一樣的語言,而且完全相容Java(AspectJ應該就是一種擴展Java,但它不是像Groovy " ...
  • 關於講解UITabel View的使用 參照 鏈接 http://www.bubuko.com/infodetail-974265.html identifier 可以看到在創建cell的時候伴隨著一個identifier的綁定,這個identifier可以理解為這個cell標識,標識它屬於哪個重用 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...