基於 FCM 的通知演示

此示例顯示如何使用 Firebase 雲訊息傳遞(FCM)平臺。FCM 是 Google Cloud Messaging(GCM) 的後續產品。它不需要來自應用使用者的 C2D_MESSAGE 許可權。

整合 FCM 的步驟如下。

  1. 在 Android Studio 中建立示例 hello world 專案你的 Android 工作室螢幕將如下圖所示。 StackOverflow 文件

  2. 下一步是設定 firebase 專案。訪問 ![StackOverflow 文件](https://console.firebase.google.com> 並建立一個名稱相同的專案,以便你輕鬆跟蹤。 <https://i.stack.imgur.com/sK4vn.png)

  3. 現在是時候將 firebase 新增到剛剛建立的示例 android 專案中了。你將需要專案的包名稱和除錯簽名證書 SHA-1(可選)。

    一個。包名稱 - 可以從 android 清單 XML 檔案中找到。

    灣除錯簽名 SHA-1 證書 - 可以通過在終端中執行以下命令找到它。

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

在 firebase 控制檯中輸入此資訊,並將該應用程式新增到 firebase 專案中。單擊新增應用程式按鈕後,你的瀏覽器將自動下載名為“google-services.json”的 JSON 檔案。

  1. 現在將剛剛下載的 google-services.json 檔案複製到 Android 應用模組根目錄中。 StackOverflow 文件

  2. 在你繼續操作時,請按照 firebase 控制檯上給出的說明進行操作。一個。將以下程式碼行新增到專案級 build.gradle 中

    dependencies{ classpath 'com.google.gms:google-services:3.1.0' .....

    灣在應用級 build.gradle 的末尾新增以下程式碼行。

        //following are the dependencies to be added
        compile 'com.google.firebase:firebase-messaging:11.0.4'
        compile 'com.android.support:multidex:1.0.1'
    }
    // this line goes to the end of the file
    apply plugin: 'com.google.gms.google-services'
    

    C。Android 工作室會要求你同步專案。點選立即同步。

  3. 下一個任務是新增兩個服務。一個。一個使用 intent-filter 擴充套件 FirebaseMessagingService,如下所示

        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
    

    灣一個擴充套件 FirebaseInstanceIDService。

    <intent-filter>
        <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
    </intent-filter>
    
  4. FirebaseMessagingService 程式碼應如下所示。

    import android.app.Service;
    import android.content.Intent;
    import android.os.IBinder;
    
    import com.google.firebase.messaging.FirebaseMessagingService;
    
    public class MyFirebaseMessagingService extends FirebaseMessagingService {
        public MyFirebaseMessagingService() {
        }
    }
    
  5. FirebaseInstanceIdService 應該如下所示。

    import android.app.Service;
    import android.content.Intent;
    import android.os.IBinder;
    
    import com.google.firebase.iid.FirebaseInstanceIdService;
    
    public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {
        public MyFirebaseInstanceIDService() {
        }
    }
    
  6. 現在是時候捕獲裝置註冊令牌了。將以下程式碼行新增到 MainActivity 的 onCreate 方法中。

    String token = FirebaseInstanceId.getInstance().getToken();
    Log.d("FCMAPP", "Token is "+token);
    
  7. 獲得訪問令牌後,我們可以使用 firebase 控制檯傳送通知。在 Android 手機上執行應用程式。 StackOverflow 文件

點選 Firebase 控制檯中的通知,使用者介面將幫助你傳送第一條訊息。Firebase 提供向單個裝置傳送訊息的功能(通過使用我們捕獲的裝置令牌 ID)或使用我們的應用程式或特定使用者組的所有使用者。傳送第一條訊息後,你的移動螢幕應如下所示。

StackOverflow 文件

謝謝