tongmengxiao vor 8 Monaten
Ursprung
Commit
54d956ff75

+ 14 - 0
app/src/main/AndroidManifest.xml

@@ -75,6 +75,20 @@
                 android:name="android.support.FILE_PROVIDER_PATHS"
                 android:resource="@xml/file_paths" />
         </provider>
+        <meta-data
+            android:name="com.google.firebase.messaging.default_notification_icon"
+            android:resource="@mipmap/ic_launcher" />
+        <meta-data
+            android:name="com.google.firebase.messaging.default_notification_color"
+            android:resource="@color/purple_500" />
+
+        <service
+            android:name=".MyFirebaseMessagingService"
+            android:exported="false">
+            <intent-filter>
+                <action android:name="com.google.firebase.MESSAGING_EVENT" />
+            </intent-filter>
+        </service>
 
     </application>
 

+ 43 - 0
app/src/main/java/com/swago/app/MyFirebaseMessagingService.kt

@@ -0,0 +1,43 @@
+package com.swago.app
+
+import android.app.NotificationManager
+import android.app.PendingIntent
+import android.content.Context
+import android.content.Intent
+import androidx.core.app.NotificationCompat
+import com.google.firebase.messaging.FirebaseMessagingService
+import com.google.firebase.messaging.RemoteMessage
+import com.swago.baseswago.util.LogUtil
+import com.swago.home.HomeActivity
+
+class MyFirebaseMessagingService: FirebaseMessagingService() {
+
+    override fun onMessageReceived(message: RemoteMessage) {
+        super.onMessageReceived(message)
+        LogUtil.d("MyFirebaseMessagingService","onMessageReceived")
+        message.notification?.body?.let {
+            sendNotification(it)
+        }
+
+    }
+
+    override fun onNewToken(token: String) {
+        super.onNewToken(token)
+    }
+
+    private fun sendNotification(messageBody: String) {
+        val intent = Intent(this, HomeActivity::class.java)
+        intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP
+        val pendIntent = PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_IMMUTABLE)
+        val channelId = "default_channel_id"
+        val notificationBuilder = NotificationCompat.Builder(this, channelId)
+            .setSmallIcon(R.mipmap.ic_launcher_foreground)
+            .setContentTitle("FCM Message")
+            .setContentText(messageBody)
+            .setAutoCancel(true)
+            .setContentIntent(pendIntent)
+
+        val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
+        notificationManager.notify(0, notificationBuilder.build())
+    }
+}

+ 1 - 0
baseswago/build.gradle

@@ -127,6 +127,7 @@ dependencies {
     api 'com.google.firebase:firebase-auth-ktx'
     api 'com.google.firebase:firebase-firestore-ktx'
     api 'com.google.firebase:firebase-perf-ktx'
+    api 'com.google.firebase:firebase-messaging-ktx'
     //jsoup
     api 'org.jsoup:jsoup:1.12.1'
     //适配阿拉伯语