From 8b43d4e1190fc9e2261be0579e53cc6c2987f946 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期四, 27 十一月 2025 19:37:56 +0800
Subject: [PATCH] 2025年11月27日19:37:50 备份代码

---
 app/src/main/java/com/hdl/photovoltaic/HDLApp.java |   87 ++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 81 insertions(+), 6 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
index db24c47..0b240f2 100644
--- a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
+++ b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
@@ -19,6 +19,9 @@
 
 import androidx.multidex.MultiDex;
 
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.GoogleApiAvailability;
+import com.google.firebase.messaging.FirebaseMessaging;
 import com.google.gson.Gson;
 import com.hdl.hdlhttp.HxHttpConfig;
 import com.hdl.linkpm.sdk.HDLLinkPMSdk;
@@ -29,6 +32,7 @@
 import com.hdl.photovoltaic.config.AppConfigManage;
 import com.hdl.photovoltaic.config.ConstantManage;
 import com.hdl.photovoltaic.config.UserConfigManage;
+import com.hdl.photovoltaic.enums.Languages;
 import com.hdl.photovoltaic.enums.LogoutType;
 import com.hdl.photovoltaic.enums.LowerTagType;
 import com.hdl.photovoltaic.enums.NetworkType;
@@ -44,6 +48,7 @@
 import com.hdl.photovoltaic.ui.StartActivity;
 import com.hdl.photovoltaic.uni.HDLUniMPSDKManager;
 import com.hdl.photovoltaic.utils.AppManagerUtils;
+import com.hdl.photovoltaic.utils.BadgeUtils;
 import com.hdl.photovoltaic.utils.LocalManageUtil;
 import com.hdl.photovoltaic.utils.NetworkUtils;
 import com.hdl.photovoltaic.utils.SharedPreUtils;
@@ -101,7 +106,7 @@
 
 //        // 鑾峰彇褰撳墠杩涚▼鐨凱ID
 //        String processMessage = "杩涚▼Uid:" + Process.myUid() + "杩涚▼ID:" + Process.myPid() + " 杩涚▼鍚嶏細" + RuningAcitvityUtil.getAppName(getBaseContext());
-//        Log.d("=======", processMessage);
+        Log.d("Application==onCreate", "onCreate");
 //        Log.d(TAG, processMessage);
 //        if (RuningAcitvityUtil.getAppName(getBaseContext()).contains(":")) {
 //            //闈炲師鐢熻繘绋嬶紝鐢ㄥ垵濮嬪寲鍚庨潰鐨�
@@ -122,10 +127,12 @@
         if (TextUtils.isEmpty(language)) {
             //浠庡唴瀛橀噷闈㈣幏鍙栦笉鍒拌瑷�,鑾峰彇褰撳墠绯荤粺鐨�;
             String str = getResources().getConfiguration().locale.getLanguage();
-            if (str.equals(LocalManageUtil.zh)) {
-                UserConfigManage.getInstance().setCurrentAppLanguage(LocalManageUtil.zh);
+            if (str.equals(Languages.zh)) {
+                UserConfigManage.getInstance().setCurrentAppLanguage(Languages.zh);
+            } else if (str.equals(Languages.ar)) {
+                UserConfigManage.getInstance().setCurrentAppLanguage(Languages.ar);
             } else {
-                UserConfigManage.getInstance().setCurrentAppLanguage(LocalManageUtil.en);
+                UserConfigManage.getInstance().setCurrentAppLanguage(Languages.en);
             }
         }
     }
@@ -182,6 +189,14 @@
         initAutoSize();
 //        //鍒濆鍖栨瀬鍏夋帹閫�
 //        initJPush();
+        //璋锋瓕鍘熺敓fcm鎺ㄩ��
+        // 妫�鏌� Google Play Services 鍚庡啀鍒濆鍖� FCM
+        if (isGooglePlayServicesAvailable(this)) {
+            initFCM();
+        } else {
+            HdlLogLogic.print("Google Play Services 涓嶅彲鐢紝鏃犳硶浣跨敤 FCM", true);
+            // 鍙互鍦ㄨ繖閲屽垵濮嬪寲澶囬�夋帹閫佹柟妗堬紙濡傞樋閲屼簯鑷缓閫氶亾锛�
+        }
         initHDLLinkPMSdk();
         HDLLinkLocalSdk.getInstance().init(getInstance());
         initSocket();
@@ -216,7 +231,6 @@
      * 鍒濆鍖朒DLLinkPMSdk
      */
     private void initHDLLinkPMSdk() {
-        Log.d("===1====", "2222222");
         //1.鍒濆鍖朣DK
         HDLLinkPMSdk.initWithAppKey(this, AppConfigManage.getAppKey(), AppConfigManage.getAppSecret(), AppConfigManage.getAPPRegionUrl());
         //2.璁剧疆鎵撳嵃
@@ -224,7 +238,7 @@
 
         if (TextUtils.isEmpty(UserConfigManage.getInstance().getCurrentAppLanguage())) {
             //榛樿閰嶇疆鎺ュ彛璇锋眰璇█鏄嫳鏂�
-            UserConfigManage.getInstance().setCurrentAppLanguage(LocalManageUtil.en);
+            UserConfigManage.getInstance().setCurrentAppLanguage(Languages.en);
         }
         //3.閰嶇疆鎺ュ彛璇锋眰璇█
         HDLLinkPMSdk.setLanguage(UserConfigManage.getInstance().getCurrentAppLanguage());
@@ -245,6 +259,8 @@
                     new Handler().postDelayed(new Runnable() {
                         @Override
                         public void run() {
+                            BadgeUtils.cancelAllNotifications(getApplicationContext());
+                            BadgeUtils.clearBadge(getApplicationContext());
                             //鍒囨崲鏈嶅姟鍣ㄥ湴鍧�鐢ㄧ殑
                             UserConfigManage.getInstance().setOnlineServer(!UserConfigManage.getInstance().isOnlineServer());
                             UserConfigManage.getInstance().Save();
@@ -256,6 +272,8 @@
                     new Handler().postDelayed(new Runnable() {
                         @Override
                         public void run() {
+                            BadgeUtils.cancelAllNotifications(getApplicationContext());
+                            BadgeUtils.clearBadge(getApplicationContext());
                             restartApp(mHDLApp);
                         }
                     }, 500);
@@ -289,6 +307,8 @@
                     }
                     SystemClock.sleep(200);
                     initDCUniMPSDK();
+                    BadgeUtils.cancelAllNotifications(getApplicationContext());
+                    BadgeUtils.clearBadge(getApplicationContext());
                     Intent intent = new Intent(getInstance(), LoginActivity.class);
                     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
                     startActivity(intent);
@@ -331,6 +351,8 @@
                     }
                     SystemClock.sleep(200);
                     initDCUniMPSDK();
+                    BadgeUtils.cancelAllNotifications(getApplicationContext());
+                    BadgeUtils.clearBadge(getApplicationContext());
                     Intent intent = new Intent(getInstance(), LoginActivity.class);
                     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
                     if (type == 1) {
@@ -411,6 +433,59 @@
 //        JPushInterface.init(getBaseContext());
     }
 
+    private void initFCM() {
+        // 鑾峰彇 FCM Token
+        FirebaseMessaging.getInstance().getToken()
+                .addOnCompleteListener(task -> {
+                    if (!task.isSuccessful()) {
+                        Log.w("FCM", "鑾峰彇 FCM Token 澶辫触", task.getException());
+                        return;
+                    }
+                    // 鑾峰彇鏂扮殑 FCM Token
+                    String token = task.getResult();
+                    Log.d("FCM", "FCM Token: " + token);
+
+                    // 淇濆瓨 token
+                    saveFCMToken(token);
+                });
+
+//        // 璁㈤槄涓婚锛堝彲閫夛級
+//        FirebaseMessaging.getInstance().subscribeToTopic("all_users")
+//                .addOnCompleteListener(task -> {
+//                    String msg = "璁㈤槄涓婚鎴愬姛";
+//                    if (!task.isSuccessful()) {
+//                        msg = "璁㈤槄涓婚澶辫触";
+//                    }
+//                    Log.d("FCM", msg);
+//                });
+    }
+
+    /**
+     * 妫�鏌� Google Play Services 鏄惁鍙敤
+     */
+    private boolean isGooglePlayServicesAvailable(Context context) {
+        GoogleApiAvailability googleApiAvailability = GoogleApiAvailability.getInstance();
+        int resultCode = googleApiAvailability.isGooglePlayServicesAvailable(context);
+        return resultCode == ConnectionResult.SUCCESS;
+    }
+
+    /**
+     * 淇濆瓨浠ょ墝
+     *
+     * @param token 浠ょ墝
+     */
+    public void saveFCMToken(String token) {
+        if (TextUtils.isEmpty(token.trim())) {
+            return;
+        }
+        UserConfigManage.getInstance().setPushToken(token);
+        UserConfigManage.getInstance().Save();
+
+//        // 鍙戦�佸埌鏈嶅姟鍣�
+//        sendTokenToServer(token);
+    }
+
+
     /**
      * 鐩戝惉缃戠粶鐘舵�佸彉鍖�
      */

--
Gitblit v1.8.0