From acccdeba7fe28f7f4b72ba464ad4789b0d9ddb2a Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期一, 08 十二月 2025 11:06:21 +0800
Subject: [PATCH] 2025年12月08日11:06:18

---
 app/src/main/java/com/hdl/photovoltaic/push/fcm/MyFirebaseMessagingService.java |   77 +++++++++++++++++++++++---------------
 1 files changed, 46 insertions(+), 31 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/push/fcm/MyFirebaseMessagingService.java b/app/src/main/java/com/hdl/photovoltaic/push/fcm/MyFirebaseMessagingService.java
index c1c45c4..89ec8fa 100644
--- a/app/src/main/java/com/hdl/photovoltaic/push/fcm/MyFirebaseMessagingService.java
+++ b/app/src/main/java/com/hdl/photovoltaic/push/fcm/MyFirebaseMessagingService.java
@@ -23,9 +23,11 @@
 import com.hdl.photovoltaic.config.UserConfigManage;
 import com.hdl.photovoltaic.enums.MessageStateType;
 import com.hdl.photovoltaic.other.HdlPushLogic;
+import com.hdl.photovoltaic.push.CustomNotification;
 import com.hdl.photovoltaic.push.PushMessageInfoBean;
 import com.hdl.photovoltaic.ui.BPowerStationActivity;
 import com.hdl.photovoltaic.ui.StartActivity;
+import com.hdl.photovoltaic.uni.HDLUniMPSDKManager;
 import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
 
 import org.greenrobot.eventbus.EventBus;
@@ -37,6 +39,9 @@
 
 import cn.jpush.android.api.NotificationMessage;
 
+/**
+ * 璋锋瓕鎺ㄩ�佹秷鎭帴鏀舵柟娉�
+ */
 public class MyFirebaseMessagingService extends FirebaseMessagingService {
     private static final String TAG = "FCMService";
 
@@ -55,11 +60,8 @@
      */
     @Override
     public void onMessageReceived(RemoteMessage remoteMessage) {
-        Log.d(TAG, "鍦ㄥ墠鍙拌繕鏄湪鍚�" + isAppInForeground(this));
+        Log.d(TAG, "鏄惁鍦ㄥ墠鍙帮細" + isAppInForeground(this));
         Log.d(TAG, "鏉ヨ嚜RemoteMessage: " + JSON.toJSONString(remoteMessage));
-        Log.d(TAG, "鏉ヨ嚜: " + remoteMessage.getFrom());
-
-
 //        // 鏁版嵁娑堟伅锛氫换浣曠姸鎬侀兘浼氭墽琛�
 //        if (!remoteMessage.getData().isEmpty()) {
 //            handleDataMessage(remoteMessage.getData()); // 鎬绘槸鎵ц
@@ -70,21 +72,31 @@
 //            handleNotification(remoteMessage.getNotification()); // 鍙湁鍓嶅彴鎵ц
 //        }
 
-        if (isAppInForeground(this)) {
-            // 妫�鏌ユ秷鎭槸鍚﹀寘鍚暟鎹礋杞�
-            if (!remoteMessage.getData().isEmpty()) {
-                PushMessageInfoBean pushMessageInfoBean = HdlPushLogic.getInstance().pushDataProcessing("", "", JSON.toJSONString(remoteMessage.getData()));
-                HdlPushLogic.getInstance().PushPushCommonData(this, pushMessageInfoBean, false);
-//            Log.d(TAG, "娑堟伅鏁版嵁: " + remoteMessage.getData());
-//            handleDataMessage(remoteMessage.getData());
-            }
-        } else {
-            // 妫�鏌ユ秷鎭槸鍚﹀寘鍚�氱煡璐熻浇
-            if (!remoteMessage.getData().isEmpty()) {
-                PushMessageInfoBean pushMessageInfoBean = HdlPushLogic.getInstance().pushDataProcessing("", "", JSON.toJSONString(remoteMessage.getData()));
-                this.showCustomNotification(pushMessageInfoBean);
-            }
+
+        String title = "";//鎺ㄩ�佹爣棰�
+        String content = "";//鎺ㄩ�佸唴瀹�
+        if (remoteMessage.getNotification() != null) {
+            title = remoteMessage.getNotification().getTitle();
+            content = remoteMessage.getNotification().getBody();
         }
+        if (!remoteMessage.getData().isEmpty()) {
+            CustomNotification.getInstance().messageDataProcessing(this, title, content, JSON.toJSONString(remoteMessage.getData()), CustomNotification.FromPush.FCM);
+        }
+//        //鍘熺敓鍦ㄥ墠鍙版垨鑰卽ni鍦ㄥ墠鍙�
+//        if (isAppInForeground(this)) {
+//            // 妫�鏌ユ秷鎭槸鍚﹀寘鍚暟鎹礋杞�
+//            if (!remoteMessage.getData().isEmpty()) {
+//                PushMessageInfoBean pushMessageInfoBean = HdlPushLogic.getInstance().pushDataProcessing(title, content, JSON.toJSONString(remoteMessage.getData()));
+//                HdlPushLogic.getInstance().PushPushCommonData(this, pushMessageInfoBean, false);
+////            this.showCustomNotification(pushMessageInfoBean);
+//            }
+//        } else {
+//            // 妫�鏌ユ秷鎭槸鍚﹀寘鍚�氱煡璐熻浇
+//            if (!remoteMessage.getData().isEmpty()) {
+//                PushMessageInfoBean pushMessageInfoBean = HdlPushLogic.getInstance().pushDataProcessing(title, content, JSON.toJSONString(remoteMessage.getData()));
+//                this.showCustomNotification(pushMessageInfoBean);
+//            }
+//        }
     }
 
 
@@ -102,38 +114,40 @@
             createNotificationChannel(notificationManager);
         }
 
+        // 鏋勫缓閫氱煡鍐呭
         NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "fcm_channel")
-                .setSmallIcon(R.drawable.desktop_logo)
+                .setSmallIcon(R.drawable.notification_logo)
                 .setContentTitle(pushMessageInfoBean.getTitle())
                 .setContentText(pushMessageInfoBean.getContent())
                 .setAutoCancel(true)
                 .setWhen(System.currentTimeMillis());
 
-        // 璁剧疆鐐瑰嚮鎰忓浘
-        Intent intent = createNotificationIntent(pushMessageInfoBean.getExpandData());
+        // 璁剧疆鐐瑰嚮鎰忓浘,涓洪�氱煡娣诲姞鐐瑰嚮鍚庣殑璺宠浆鎰忓浘
+        Intent intent = createNotificationIntent(pushMessageInfoBean);
         PendingIntent pendingIntent = PendingIntent.getActivity(
                 this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
         builder.setContentIntent(pendingIntent);
 
-        // 鏄剧ず閫氱煡
-        notificationManager.notify((int) System.currentTimeMillis(), builder.build());
+        // 鍙戦�侀�氱煡,閫氱煡鏍忔樉绀洪�氱煡
+        int notificationId = (int) System.currentTimeMillis();  // 姣忎釜閫氱煡鐨勫敮涓�ID
+        notificationManager.notify(notificationId, builder.build());
     }
 
     @RequiresApi(api = Build.VERSION_CODES.O)
     private void createNotificationChannel(NotificationManager notificationManager) {
         NotificationChannel channel = new NotificationChannel(
                 "fcm_channel",
-                "FCM 娑堟伅",
+                "FCM Message",
                 NotificationManager.IMPORTANCE_HIGH
         );
-        channel.setDescription("Firebase Cloud Messaging 閫氱煡");
+        channel.setDescription("Firebase Cloud Messaging Notification");
         notificationManager.createNotificationChannel(channel);
     }
 
-    private Intent createNotificationIntent(String data) {
+    private Intent createNotificationIntent(PushMessageInfoBean pushMessageInfoBean) {
         Intent intent = new Intent(this, StartActivity.class);
         intent.putExtra("from_fcm", true);
-        intent.putExtra("pushData", data);
+        intent.putExtra("pushData", JSONObject.toJSONString(pushMessageInfoBean));
         intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
         return intent;
     }
@@ -145,8 +159,7 @@
         if (TextUtils.isEmpty(token)) {
             return;
         }
-        UserConfigManage.getInstance().setPushToken(token);
-        UserConfigManage.getInstance().Save();
+
         BaseEventBus bus = new BaseEventBus();
         bus.setTopic(ConstantManage.refresh_push_token);
         bus.setType(token);
@@ -171,9 +184,11 @@
                 return false;
             }
             final String packageName = context.getPackageName();
+            final String uniPackageName = packageName + ":unimp0";
             for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
-                if (appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND &&
-                        appProcess.processName.equals(packageName)) {
+                if ((appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND &&
+                        appProcess.processName.equals(packageName)) || (appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND &&
+                        appProcess.processName.equals(uniPackageName))) {
                     return true;
                 }
             }

--
Gitblit v1.8.0