From e7e48e1a65fdaa361e14e7e77e24043a63126bd6 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 13 一月 2026 15:52:15 +0800
Subject: [PATCH] 2026年01月13日15:47:59 升级gradle版本

---
 app/src/main/java/com/hdl/photovoltaic/ui/LoginActivity.java                       |   22 ++
 gradle/wrapper/gradle-wrapper.properties                                           |    2 
 app/src/main/java/com/hdl/photovoltaic/ui/me/AsRegardsActivity.java                |   73 --------
 app/libs/android-gif-drawable-1.2.29.aar                                           |    0 
 app/libs/breakpad-build-release.aar                                                |    0 
 app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java                      |    8 
 pickerview/build.gradle                                                            |    1 
 app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java               |   19 ++
 app/src/main/res/values-zh/strings.xml                                             |    2 
 app/src/main/res/layout/activity_home_login.xml                                    |   12 +
 app/src/main/res/layout/fragment_home_page.xml                                     |   12 +
 build.gradle                                                                       |    4 
 app/src/main/java/com/hdl/photovoltaic/config/UserConfigManage.java                |   57 ++++++
 app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java            |    4 
 app/src/main/res/values-ar/strings.xml                                             |    2 
 app/build.gradle                                                                   |   39 ++--
 app/libs/uniapp-v8-release.aar                                                     |    0 
 app/src/main/res/layout/fragment_me.xml                                            |   14 +
 countrypicker/build.gradle                                                         |    3 
 third-zxing/build.gradle                                                           |    1 
 app/src/main/java/com/hdl/photovoltaic/ui/me/languageSelectionActivity.java        |   14 +
 app/libs/uniMPSDK-V2-release.aar                                                   |    0 
 app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java                       |    3 
 app/src/main/res/values/strings.xml                                                |    2 
 wheelview/build.gradle                                                             |    1 
 app/src/main/AndroidManifest.xml                                                   |    2 
 app/src/main/java/com/hdl/photovoltaic/other/HdlPushLogic.java                     |    4 
 aa_chart_core/build.gradle                                                         |    1 
 app/src/main/java/com/hdl/photovoltaic/ui/me/SetActivity.java                      |    9 +
 app/src/main/java/com/hdl/photovoltaic/HDLApp.java                                 |   20 +
 gradle.properties                                                                  |    2 
 /dev/null                                                                          |    0 
 app/src/main/java/com/hdl/photovoltaic/ui/me/MeFragment.java                       |   24 ++
 app/src/main/res/layout/fragment_house_list.xml                                    |   12 +
 sdk/build.gradle                                                                   |    7 
 app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java |   28 +++
 app/src/main/res/values-en/strings.xml                                             |    3 
 app/src/main/java/com/hdl/photovoltaic/uni/MyForegroundService.java                |   61 +++++-
 38 files changed, 327 insertions(+), 141 deletions(-)

diff --git a/aa_chart_core/build.gradle b/aa_chart_core/build.gradle
index 6a6b2f0..563ffd3 100644
--- a/aa_chart_core/build.gradle
+++ b/aa_chart_core/build.gradle
@@ -1,6 +1,7 @@
 apply plugin: 'com.android.library'
 
 android {
+    namespace 'com.github.AAChartModel.AAChartCore'
     compileSdkVersion 33
 
     defaultConfig {
diff --git a/app/build.gradle b/app/build.gradle
index 7c604ff..b247e14 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -25,13 +25,14 @@
             keyPassword '85521566'
         }
     }
+    namespace 'com.hdl.photovoltaic'
     compileSdk 35
     defaultConfig {
         applicationId "com.hdl.photovoltaic"
         minSdk 23
         targetSdk 35
         versionCode 23
-        versionName "2.0.0"//鐗堟湰瑙勫垯1.3鏄骇鍝佸姛鑳借凯浠g敤鐨�,鏈�鍚庝竴浣�0鏄垜浠慨澶峛ug鐢ㄧ殑
+        versionName "2.0.1"//鐗堟湰瑙勫垯1.3鏄骇鍝佸姛鑳借凯浠g敤鐨�,鏈�鍚庝竴浣�0鏄垜浠慨澶峛ug鐢ㄧ殑
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         multiDexEnabled true
         manifestPlaceholders = mfph
@@ -63,10 +64,10 @@
         ]
 
     }
-    // 淇濊瘉鍏朵粬鐨刲ib娌℃湁琚玴reDex
-    dexOptions {
-        preDexLibraries = false
-    }
+//    // 淇濊瘉鍏朵粬鐨刲ib娌℃湁琚玴reDex
+//    dexOptions {
+//        preDexLibraries = false
+//    }
     repositories {
         flatDir {
             dirs 'libs'
@@ -85,6 +86,11 @@
 //        abortOnError false
 //    }
 
+    packagingOptions {
+        jniLibs {
+            useLegacyPackaging true
+        }
+    }
 
     /**
      * 鎵撳寘鑷姩鍛藉悕
@@ -110,6 +116,7 @@
     buildFeatures {
         viewBinding true
         aidl true
+        buildConfig true
     }
     compileOptions {
         sourceCompatibility JavaVersion.VERSION_1_8
@@ -154,7 +161,7 @@
     //浜岀淮鐮佸簱
     implementation project(path: ':third-zxing')
     //Link鏈湴搴擄紙鍦ㄧ嚎渚濊禆缃戠粶搴擄級
-    implementation 'com.hdl.android:pmsdk:1.0.18'
+    implementation 'com.hdl.android:pmsdk:1.0.22'//22
 //    implementation 'com.hdl.android:debugsdk:1.0.71'
     implementation project(path: ':sdk')
     implementation 'androidx.activity:activity:1.2.3'
@@ -185,13 +192,13 @@
     //********UniSDK蹇呴』娣诲姞鐨勪緷璧� start********
     implementation "androidx.recyclerview:recyclerview:1.0.0"
     implementation 'com.alibaba:fastjson:1.2.66'//蹇呴』闆嗘垚锛宖astjson鍔熻兘闇�瑕�
-    implementation 'com.facebook.fresco:fresco:2.5.0'//蹇呴』闆嗘垚锛屽浘鐗囧姞杞介渶瑕�
-    implementation 'com.facebook.fresco:animated-gif:2.5.0'//蹇呴』闆嗘垚锛屽浘鐗囧姞杞介渶瑕�
-    implementation 'com.facebook.fresco:webpsupport:2.5.0'
-    implementation 'com.facebook.fresco:animated-webp:2.5.0'
-    implementation 'com.github.bumptech.glide:glide:4.9.0'//蹇呴』闆嗘垚锛屽浘鐗囧姞杞介渶瑕�
+    implementation 'com.facebook.fresco:fresco:3.6.0'//蹇呴』闆嗘垚锛屽浘鐗囧姞杞介渶瑕�
+    implementation 'com.facebook.fresco:animated-gif:3.6.0'//蹇呴』闆嗘垚锛屽浘鐗囧姞杞介渶瑕�
+    implementation 'com.facebook.fresco:webpsupport:3.6.0'
+    implementation 'com.facebook.fresco:animated-webp:3.6.0'
+    implementation 'com.github.bumptech.glide:glide:5.0.5'//蹇呴』闆嗘垚锛屽浘鐗囧姞杞介渶瑕�
     implementation 'com.android.support:multidex:1.0.3'
-    implementation 'androidx.webkit:webkit:1.3.0'//3.6.15鐗堟湰涔嬪悗 蹇呴』闆嗘垚锛岀敤鏉ユ敮鎸佹殫榛戞ā寮�
+    implementation 'androidx.webkit:webkit:1.6.1'//3.6.15鐗堟湰涔嬪悗 蹇呴』闆嗘垚锛岀敤鏉ユ敮鎸佹殫榛戞ā寮�
     //********UniSDK蹇呴』娣诲姞鐨勪緷璧� end********
     //NanoHTTPD鎼缓鏈嶅姟鍣�
     implementation 'org.nanohttpd:nanohttpd:2.3.1'
@@ -216,9 +223,10 @@
     implementation 'com.huawei.agconnect:agconnect-core:1.9.1.301'
 
     //鍙嬬洘
-    implementation 'com.umeng.umsdk:common:9.5.6'// 蹇呴��
-    implementation 'com.umeng.umsdk:asms:1.6.3'// 蹇呴��
-    implementation 'com.umeng.umsdk:apm:1.7.0' // 閿欒鍒嗘瀽
+    implementation 'com.umeng.umsdk:common:9.6.8'// 蹇呴��
+    implementation 'com.umeng.umsdk:asms:1.8.0'// 蹇呴��
+//    implementation 'com.umeng.umsdk:apm:1.9.2' // 閿欒鍒嗘瀽锛岀洰鍓嶄笉鏀寔鈥孉ndroid 15鐨勨��16KB鍔熻兘閫傞厤瑕佹眰鈥屻�傗��
+
     //寮曞叆FCM锛堝師鐢熻胺姝岋級
     implementation 'com.google.firebase:firebase-messaging:23.2.1'
 
@@ -228,7 +236,6 @@
     implementation 'me.leolin:ShortcutBadger:1.1.22@aar'
     // 闃块噷浜戞帹閫佹牳蹇冨簱
     implementation 'com.aliyun.ams:alicloud-android-push:3.9.3'
-
 
 
     //杈呭姪閫氶亾
diff --git a/app/libs/android-gif-drawable-1.2.28.aar b/app/libs/android-gif-drawable-1.2.28.aar
deleted file mode 100644
index f50965f..0000000
--- a/app/libs/android-gif-drawable-1.2.28.aar
+++ /dev/null
Binary files differ
diff --git a/app/libs/android-gif-drawable-1.2.29.aar b/app/libs/android-gif-drawable-1.2.29.aar
new file mode 100644
index 0000000..7059bbd
--- /dev/null
+++ b/app/libs/android-gif-drawable-1.2.29.aar
Binary files differ
diff --git a/app/libs/breakpad-build-release.aar b/app/libs/breakpad-build-release.aar
index 5efe624..12af05c 100644
--- a/app/libs/breakpad-build-release.aar
+++ b/app/libs/breakpad-build-release.aar
Binary files differ
diff --git a/app/libs/uniMPSDK-V2-release.aar b/app/libs/uniMPSDK-V2-release.aar
index c27b2e5..fea5d65 100644
--- a/app/libs/uniMPSDK-V2-release.aar
+++ b/app/libs/uniMPSDK-V2-release.aar
Binary files differ
diff --git a/app/libs/uniapp-v8-release.aar b/app/libs/uniapp-v8-release.aar
index a3f4c59..2ca195f 100644
--- a/app/libs/uniapp-v8-release.aar
+++ b/app/libs/uniapp-v8-release.aar
Binary files differ
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 747146d..8162f51 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -100,7 +100,7 @@
         android:label="@string/app_name"
         android:persistent="true"
         android:requestLegacyExternalStorage="true"
-        android:supportsRtl="false"
+        android:supportsRtl="true"
         android:theme="@style/Theme.PhotovoltaicDebug"
         tools:replace="android:supportsRtl">
         <!-- 鍘傚晢閫氶亾涓撶敤Activity锛堥�忔槑涓浆椤碉級,鍒涘缓涓�涓�忔槑鐨凙ctivity鏉ュ鐞嗗巶鍟嗛�氶亾鐐瑰嚮 -->
diff --git a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
index 92eb85a..16db588 100644
--- a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
+++ b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
@@ -84,6 +84,10 @@
 
 public class HDLApp extends Application {
 
+    /**
+     * 娣诲姞鏍囧織浣嶆帶鍒堕娆″姞杞介�昏緫
+     */
+    public boolean isFirstLoad = true;
     final String TAG = HDLApp.class.getName();
     //鎺у埗鎵撳嵃 Debug妯″紡鎵撳嵃
     private Boolean isLogEnabled = true;
@@ -109,20 +113,15 @@
     @Override
     public void onCreate() {
         super.onCreate();
-
+//        Log.d("Application==onCreate", "onCreate");
 //        // 鑾峰彇褰撳墠杩涚▼鐨凱ID
 //        String processMessage = "杩涚▼Uid:" + Process.myUid() + "杩涚▼ID:" + Process.myPid() + " 杩涚▼鍚嶏細" + RuningAcitvityUtil.getAppName(getBaseContext());
-        Log.d("Application==onCreate", "onCreate");
-//        Log.d(TAG, processMessage);
+//        Log.d("Application==onCreate", processMessage);
 //        if (RuningAcitvityUtil.getAppName(getBaseContext()).contains(":")) {
 //            //闈炲師鐢熻繘绋嬶紝鐢ㄥ垵濮嬪寲鍚庨潰鐨�
 //            return;
 //        }
         mHDLApp = this;
-        SharedPreUtils.init(this);
-        getAppLanguage();
-        //棰勫垱寤鸿剼鏈琷son鏂囦欢澶�
-        HdlFileLogic.getInstance().createHdlDeviceModelLocalJsonDirectory();
         init();
 
 
@@ -181,6 +180,11 @@
             return;
         }
         isInitThirdSDK = true;
+        SharedPreUtils.init(this);
+        getAppLanguage();
+        //棰勫垱寤鸿剼鏈琷son鏂囦欢澶�
+        HdlFileLogic.getInstance().createHdlDeviceModelLocalJsonDirectory();
+        UserConfigManage.getInstance().setTouristModeJumpLogic(UserConfigManage.getInstance().isTourist_mode());
 //        //5.鍒濆鍖朆ugly
 //        CrashReport.initCrashReport(this, Constant.BUGLY_APP_ID, true);
         //6.鍒濆鍖朌CUniMPSDK
@@ -303,6 +307,8 @@
         HDLLinkPMUser.getInstance().setOnReloginListener(new IOnReloginListener() {
             @Override
             public void onReLogin(int type) {
+//                UserConfigManage.getInstance().setTourist_mode(false);
+//                UserConfigManage.getInstance().Save();
                 if (type == LogoutType.ServerSwitchingLogout.getValue()) {
                     new Handler().postDelayed(new Runnable() {
                         @Override
diff --git a/app/src/main/java/com/hdl/photovoltaic/config/UserConfigManage.java b/app/src/main/java/com/hdl/photovoltaic/config/UserConfigManage.java
index 7cefa3a..359774d 100644
--- a/app/src/main/java/com/hdl/photovoltaic/config/UserConfigManage.java
+++ b/app/src/main/java/com/hdl/photovoltaic/config/UserConfigManage.java
@@ -109,13 +109,14 @@
     private String userImageUrl = "/static/image/user-default-head.png";
 
 
-    /// <summary>
-    /// 娉ㄥ唽鏋佸厜ID锛岃胺姝孎CM鐨勪护鐗�
-    /// </summary>
+    /**
+     * 娉ㄥ唽鏋佸厜ID锛岃胺姝孎CM鐨勪护鐗�
+     */
     private String pushToken;
-    /// <summary>
-    /// 娣诲姞浠ょ墝鍒颁簯绔垚鍔熸椂杩斿洖鐨�
-    /// </summary>
+
+    /**
+     * 娣诲姞浠ょ墝鍒颁簯绔垚鍔熸椂杩斿洖鐨�
+     */
     private String pushId;
 
     /**
@@ -123,6 +124,50 @@
      */
     private boolean noNetworkFlag = false;
 
+
+    /**
+     * 鏄惁鏄父瀹㈡ā寮�(true=娓稿妯″紡,false=姝e父妯″紡)
+     */
+    private boolean tourist_mode = false;
+
+
+    /**
+     * 鏄惁鏄父瀹㈡ā寮�
+     * @return (true=娓稿妯″紡,false=姝e父妯″紡)
+     */
+    public boolean isTourist_mode() {
+        return tourist_mode;
+    }
+    /**
+     * 鏄惁鏄父瀹㈡ā寮�
+     * @return (true=娓稿妯″紡,false=姝e父妯″紡)
+     */
+    public void setTourist_mode(boolean tourist_mode) {
+        this.tourist_mode = tourist_mode;
+    }
+
+
+
+    /**
+     * 鐢ㄦ潵娓稿妯″紡鍐峰惎鍔ㄥ己鍒惰烦鍒扮櫥褰曠晫闈㈡爣璁�
+     *  true=娓稿妯″紡,鍐峰惎鍔ㄥ己鍒惰烦杞櫥褰曠晫闈紝false锛氭寜姝e父娴佺▼璺�
+     */
+    private boolean isTouristModeJumpLogic = false;
+
+    /**
+     * 鐢ㄦ潵娓稿妯″紡鍐峰惎鍔ㄥ己鍒惰烦鍒扮櫥褰曠晫闈㈡爣璁�
+     * @return true=娓稿妯″紡,鍐峰惎鍔ㄥ己鍒惰烦杞櫥褰曠晫闈紝false锛氭寜姝e父娴佺▼璺�
+     */
+    public boolean isTouristModeJumpLogic() {
+        return isTouristModeJumpLogic;
+    }
+    /**
+     * 鐢ㄦ潵娓稿妯″紡鍐峰惎鍔ㄥ己鍒惰烦鍒扮櫥褰曠晫闈㈡爣璁�
+     * @return true=娓稿妯″紡,鍐峰惎鍔ㄥ己鍒惰烦杞櫥褰曠晫闈紝false锛氭寜姝e父娴佺▼璺�
+     */
+    public void setTouristModeJumpLogic(boolean touristModeJumpLogic) {
+        isTouristModeJumpLogic = touristModeJumpLogic;
+    }
     public boolean isAutomaticSkipNoNetworkFlag() {
         return automaticSkipNoNetworkFlag;
     }
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlPushLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlPushLogic.java
index 004975e..912fb10 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlPushLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlPushLogic.java
@@ -59,6 +59,10 @@
      * @param cloudCallBeak -
      */
     public void pushAdd(CloudCallBeak<String> cloudCallBeak) {
+        //娓稿妯″紡涓嶉渶瑕佹秷鎭帹閫侊紝鍥犱负鎵嬪姩鏉�姝诲簲鐢ㄦ椂锛岃嚜鍔ㄩ��鍑烘父瀹㈡ā寮�
+        if (UserConfigManage.getInstance().isTourist_mode()) {
+            return;
+        }
         String requestUrl = HttpApi.POST_push_add;
         JsonObject json = new JsonObject();
         json.addProperty("deviceName", Build.MODEL);//璁惧鍚嶇О
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
index 059e728..e459528 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -72,6 +72,7 @@
 import com.hdl.photovoltaic.uni.HDLUniMPSDKManager;
 import com.hdl.photovoltaic.utils.NetworkUtils;
 import com.hdl.photovoltaic.utils.PermissionUtils;
+import com.hdl.photovoltaic.utils.SharedPreUtils;
 import com.hdl.photovoltaic.utils.WifiUtils;
 import com.hdl.sdk.link.common.exception.HDLLinkException;
 import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
@@ -1879,7 +1880,7 @@
                     gatewayDriverBean.setDriverCode(driverInfoAry[0]);
                     gatewayDriverBean.setImageId(driverInfoAry[1]);
                     gatewayDriverBean.setVersion(driverInfoAry[2].replace(".zip", ""));
-                    gatewayDriverBean.setLocalUrl(HdlFileLogic.getInstance().getDrivePathFileName(gatewayDriverBean.getDriverCode(),gatewayDriverBean.getImageId(), gatewayDriverBean.getVersion()));
+                    gatewayDriverBean.setLocalUrl(HdlFileLogic.getInstance().getDrivePathFileName(gatewayDriverBean.getDriverCode(), gatewayDriverBean.getImageId(), gatewayDriverBean.getVersion()));
                     list.add(gatewayDriverBean);
                 }
             }
@@ -1912,7 +1913,7 @@
                     @Override
                     public void run() {
 
-                        String drivePathFileName = HdlFileLogic.getInstance().getDrivePathFileName(driverCode,imageId, version);
+                        String drivePathFileName = HdlFileLogic.getInstance().getDrivePathFileName(driverCode, imageId, version);
                         //涓嶅湪瀛愮嚎绋嬭娴佷細鍗℃涓荤嚎绋�
                         boolean isBoolean = HdlOtaLogic.getInstance().disposeDownLoadFile(drivePathFileName, responseBody, md5, HdlOtaLogic.driver_type);
                         if (isBoolean) {
@@ -1964,7 +1965,7 @@
                         @Override
                         public void onServiceConnected(ComponentName name, IBinder service) {
                             //鏈湴鍗囩骇椹卞姩鏂囦欢璺緞
-                            String drivePathFileName = HdlFileLogic.getInstance().getDrivePathFileName(driverCode,imageId, version);
+                            String drivePathFileName = HdlFileLogic.getInstance().getDrivePathFileName(driverCode, imageId, version);
                             byte[] data = HdlFileLogic.getInstance().readFileByte(drivePathFileName);
                             if (data == null || data.length == 0) {
                                 uniCallbackData(type, null, -2, HDLApp.getInstance().getAppLocaleContext().getString(R.string.found_locally_drive_file), callback);
@@ -3088,6 +3089,7 @@
 //                data.put("appSecret", AppConfigManage.getAppSecret());
 //            }
             data.put("appLanguage", UserConfigManage.getInstance().getCurrentAppLanguage());
+            data.put("tourist_mode", UserConfigManage.getInstance().isTourist_mode());
             uniCallBackBaseBean.setData(data);
             return getJSONObject(uniCallBackBaseBean);
         } catch (Exception e) {
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/LoginActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/LoginActivity.java
index 5e96e8f..62c0c37 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/LoginActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/LoginActivity.java
@@ -157,7 +157,7 @@
             }, 0, forgetPasswordTvStr.length(), 0);
             viewBinding.homeLoginForgetPasswordTv.setText(forgetPasswordTvStrSpannable);
 
-            LanguageAdapter.ItemData language= LocalManageUtil.getLanguage(UserConfigManage.getInstance().getCurrentAppLanguage());
+            LanguageAdapter.ItemData language = LocalManageUtil.getLanguage(UserConfigManage.getInstance().getCurrentAppLanguage());
             viewBinding.homeLoginLanguageTv.setText(language.getTitle());
 
             if (UserConfigManage.getInstance().isBAccount()) {
@@ -171,6 +171,10 @@
 //        String pws = "123456";
             //娴嬭瘯鐢�
             viewBinding.homeLoginAccountEt.setText(UserConfigManage.getInstance().getAccount());
+            if (UserConfigManage.getInstance().isTourist_mode()) {
+                //娓稿妯″紡涓嶈褰曡处鍙�
+                viewBinding.homeLoginAccountEt.setText("");
+            }
 //        viewBinding.homeLoginPasswordEt.setText(pws);
             checkClearIconShowOrNot(viewBinding.homeLoginAccountEt.getText().toString());
             isLoginTextViewEnabled();
@@ -213,6 +217,18 @@
                         viewBinding.homeLoginLanguageTv.setText(itemData.getTitle());
                     }
                 });
+            }
+        });
+
+        //娓稿妯″紡
+        viewBinding.homeLoginTouristTv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                UserConfigManage.getInstance().setTourist_mode(true);
+                UserConfigManage.getInstance().Save();
+                HDLUniMPSDKManager.isExistsActivity = false;
+                //娓稿妯″紡鐧诲綍
+                loginAccount("Sales@xenterrasolar.com", "PLMOKNIJ");
             }
         });
 
@@ -286,6 +302,8 @@
                     getAcceiptPolicyDialog();
                     return;
                 }
+                UserConfigManage.getInstance().setTourist_mode(false);
+                UserConfigManage.getInstance().Save();
                 //鐧诲綍
                 loginAccount(account, password);
 
@@ -686,6 +704,8 @@
                 confirmationCancelDialog.dismiss();
                 String account = viewBinding.homeLoginAccountEt.getText().toString().replace(" ", "");
                 String password = viewBinding.homeLoginPasswordEt.getText().toString().replace(" ", "");
+                UserConfigManage.getInstance().setTourist_mode(false);
+                UserConfigManage.getInstance().Save();
                 loginAccount(account, password);
             }
         });
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java
index 4526576..8ca12fd 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java
@@ -94,8 +94,9 @@
             if (!UserConfigManage.getInstance().isNoNetworkFlag()) {
                 //鍒濆鍖栨湇鍔″櫒鍩熷悕锛堢敤鎴锋敞鍐屾墍鍦ㄦ湇鍔″櫒鍩熷悕鍦板潃锛�
                 AppConfigManage.setUserRegionUrl(HDLLinkPMUser.getInstance().getUserRegionUrl());
+                boolean isTourist = UserConfigManage.getInstance().isTouristModeJumpLogic();
                 //鍒ゆ柇AccessToken鏄惁null
-                if (!TextUtils.isEmpty(HDLLinkPMUser.getInstance().getAccessToken())) {
+                if (!TextUtils.isEmpty(HDLLinkPMUser.getInstance().getAccessToken()) && !isTourist) {
                     if (UserConfigManage.getInstance().isBAccount()) {
                         //瀹夎鍟嗚烦杞晫闈�
                         Intent intent = new Intent();
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java b/app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java
index b16f43d..f28632a 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java
@@ -15,6 +15,7 @@
 import androidx.recyclerview.widget.RecyclerView;
 
 import com.hdl.photovoltaic.R;
+import com.hdl.photovoltaic.config.UserConfigManage;
 import com.hdl.photovoltaic.enums.DebugStatus;
 import com.hdl.photovoltaic.enums.DeliverStatus;
 import com.hdl.photovoltaic.enums.PowerStationStatus;
@@ -128,6 +129,9 @@
             }
         });
 
+        if (UserConfigManage.getInstance().isTourist_mode()) {
+            holder.home_del_ll.setVisibility(View.GONE);
+        }
     }
 
     @Override
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
index bd2663a..44f9aeb 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
@@ -33,11 +33,13 @@
 import com.hdl.photovoltaic.config.UserConfigManage;
 import com.hdl.photovoltaic.databinding.FragmentHomePageBinding;
 import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch;
+import com.hdl.photovoltaic.enums.LogoutType;
 import com.hdl.photovoltaic.enums.PowerStationStatus;
 import com.hdl.photovoltaic.enums.TimeType;
 import com.hdl.photovoltaic.enums.UnitType;
 import com.hdl.photovoltaic.listener.CloudCallBeak;
 import com.hdl.photovoltaic.listener.OnCallBeak;
+import com.hdl.photovoltaic.other.HdlAccountLogic;
 import com.hdl.photovoltaic.other.HdlCommonLogic;
 import com.hdl.photovoltaic.other.HdlDialogLogic;
 import com.hdl.photovoltaic.other.HdlLogLogic;
@@ -45,8 +47,6 @@
 import com.hdl.photovoltaic.other.HdlResidenceLogic;
 import com.hdl.photovoltaic.other.HdlThreadLogic;
 import com.hdl.photovoltaic.other.HdlUniLogic;
-import com.hdl.photovoltaic.ui.StartActivity;
-import com.hdl.photovoltaic.ui.adapter.LanguageAdapter;
 import com.hdl.photovoltaic.ui.bean.DataOverBean;
 import com.hdl.photovoltaic.ui.bean.SocialContributionBean;
 import com.hdl.photovoltaic.ui.bean.StatisticsBean;
@@ -56,6 +56,7 @@
 import com.hdl.photovoltaic.utils.AppManagerUtils;
 import com.hdl.photovoltaic.utils.GPSManagerUtils;
 import com.hdl.photovoltaic.utils.PermissionUtils;
+import com.hdl.photovoltaic.utils.SharedPreUtils;
 import com.hdl.photovoltaic.utils.TimeUtils;
 import com.hdl.photovoltaic.widget.AddPowerStationDialog;
 import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
@@ -130,6 +131,12 @@
     }
 
     private void initEvent() {
+        viewBinding.exitTv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                HdlAccountLogic.getInstance().logout(LogoutType.NormalLogout);
+            }
+        });
         //鐢电珯娣诲姞
         //鐐瑰嚮杩涘叆鏂伴厤缃叆缃戠晫闈�
         viewBinding.homePageStationAddIv.setOnClickListener(new View.OnClickListener() {
@@ -470,7 +477,13 @@
     }
 
     private void initView() {
-
+        if (UserConfigManage.getInstance().isTourist_mode()) {
+            viewBinding.homePageStationAddIv.setVisibility(View.GONE);
+            viewBinding.exitTv.setVisibility(View.VISIBLE);
+        } else {
+            viewBinding.homePageStationAddIv.setVisibility(View.VISIBLE);
+            viewBinding.exitTv.setVisibility(View.GONE);
+        }
         String dataStr = TimeUtils.getDateTimestamp(TimeUtils.getCurrentTimestamp(), TimeUtils.getTimeDateFormat(timeType));
         viewBinding.yearMonthDayTv.setText(dataStr);
 
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/me/AsRegardsActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/me/AsRegardsActivity.java
index 0c5ca04..5c75473 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/me/AsRegardsActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/me/AsRegardsActivity.java
@@ -1,23 +1,14 @@
 package com.hdl.photovoltaic.ui.me;
 
 
-import android.app.NotificationChannel;
-import android.app.NotificationManager;
-import android.app.PendingIntent;
-import android.content.Context;
+
 import android.content.Intent;
 import android.graphics.Bitmap;
 import android.graphics.Color;
-import android.os.Build;
 import android.os.Bundle;
 import android.view.View;
 
-import androidx.annotation.RequiresApi;
-import androidx.core.app.NotificationCompat;
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.alibaba.fastjson.TypeReference;
 import com.hdl.linkpm.sdk.core.exception.HDLException;
 import com.hdl.linkpm.sdk.user.bean.NewVersionBean;
 import com.hdl.photovoltaic.R;
@@ -29,16 +20,12 @@
 import com.hdl.photovoltaic.other.HdlAppUpdateLogic;
 import com.hdl.photovoltaic.other.HdlCommonLogic;
 import com.hdl.photovoltaic.other.HdlThreadLogic;
-import com.hdl.photovoltaic.ui.BPowerStationActivity;
-import com.hdl.photovoltaic.ui.CPowerStationActivity;
-import com.hdl.photovoltaic.ui.StartActivity;
-import com.hdl.photovoltaic.utils.BadgeUtils;
+
 import com.hdl.photovoltaic.widget.FlashingBoxDialog;
 import com.hdl.photovoltaic.widget.apkwgtupload.ApkDownLoadService;
 import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
 import com.hdl.photovoltaic.widget.UpdateConfirmationCancelDialog;
 
-import java.util.Map;
 
 /**
  * 鍏充簬鐣岄潰锛坅pp鏇存柊锛�
@@ -210,60 +197,4 @@
         }, this, ShowErrorMode.YES);
     }
 
-    private void showCustomNotification(String title, String message, Map<String, String> data) {
-        NotificationManager notificationManager =
-                (NotificationManager) _mActivity.getSystemService(Context.NOTIFICATION_SERVICE);
-
-        // 鍒涘缓閫氱煡娓犻亾锛圓ndroid 8.0+锛�
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
-            createNotificationChannel(notificationManager);
-        }
-
-        NotificationCompat.Builder builder = new NotificationCompat.Builder(_mActivity, "fcm_channel")
-                .setSmallIcon(R.drawable.notification_logo)
-                .setContentTitle(title)
-                .setContentText(message)
-                .setAutoCancel(true)
-                .setNumber(5)
-                .setWhen(System.currentTimeMillis());
-
-
-        // 璁剧疆鐐瑰嚮鎰忓浘
-        Intent intent = createNotificationIntent(data);
-        PendingIntent pendingIntent = PendingIntent.getActivity(
-                _mActivity, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
-        builder.setContentIntent(pendingIntent);
-
-        // 鏄剧ず閫氱煡
-        notificationManager.notify((int) System.currentTimeMillis(), builder.build());
-    }
-
-    private Intent createNotificationIntent(Map<String, String> data) {
-        Intent intent = new Intent(_mActivity, StartActivity.class);
-        intent.putExtra("from_fcm", true);
-        intent.putExtra("pushData", JSON.toJSON(data).toString());
-//        if (data != null) {
-//            for (Map.Entry<String, String> entry : data.entrySet()) {
-//                intent.putExtra(entry.getKey(), entry.getValue());
-//            }
-//        }
-
-//        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
-        return intent;
-    }
-
-    @RequiresApi(api = Build.VERSION_CODES.O)
-    private void createNotificationChannel(NotificationManager notificationManager) {
-        NotificationChannel channel = new NotificationChannel(
-                "fcm_channel",
-                "FCM 娑堟伅",
-                NotificationManager.IMPORTANCE_HIGH
-        );
-        channel.setDescription("Firebase Cloud Messaging 閫氱煡");
-        // 鍚敤瑙掓爣
-        channel.setShowBadge(true);
-        notificationManager.createNotificationChannel(channel);
-        BadgeUtils.setBadgeCount(_mActivity, 7);
-    }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/me/MeFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/me/MeFragment.java
index b38c25d..e969935 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/me/MeFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/me/MeFragment.java
@@ -17,6 +17,7 @@
 import com.hdl.photovoltaic.config.UserConfigManage;
 import com.hdl.photovoltaic.databinding.FragmentMeBinding;
 import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch;
+import com.hdl.photovoltaic.enums.LogoutType;
 import com.hdl.photovoltaic.listener.CloudCallBeak;
 import com.hdl.photovoltaic.other.HdlAccountLogic;
 import com.hdl.photovoltaic.other.HdlLogLogic;
@@ -169,10 +170,19 @@
      */
     private void initEvent() {
 
+        viewBinding.exitTv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                HdlAccountLogic.getInstance().logout(LogoutType.NormalLogout);
+            }
+        });
+
         viewBinding.fragmentMeIconParentCl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-
+                if (UserConfigManage.getInstance().isTourist_mode()) {
+                    return;
+                }
                 if (UserConfigManage.getInstance().isBAccount()) {
                     Intent intent = new Intent();
                     intent.setClass(_mActivity, BPersonalDataActivity.class);
@@ -238,6 +248,11 @@
      * 鍒濆鍖栫晫闈�
      */
     private void initView() {
+        if (UserConfigManage.getInstance().isTourist_mode()) {
+            viewBinding.exitTv.setVisibility(View.VISIBLE);
+        } else {
+            viewBinding.exitTv.setVisibility(View.GONE);
+        }
         //璁惧璋冭瘯
         viewBinding.fragmentMeLineDeviceDebugIl.fragmentMeLineLeftIconIv.setImageResource(R.drawable.device_debug);
         viewBinding.fragmentMeLineDeviceDebugIl.fragmentMeLineTitleIv.setText(R.string.device_debugging);
@@ -266,7 +281,11 @@
         setMemberAccount(UserConfigManage.getInstance().getAccount());
 //        setMemberHeadIcon(UserConfigManage.getInstance().getUserImageUrl());
 
-
+        if (UserConfigManage.getInstance().isTourist_mode()) {
+            viewBinding.fragmentMeUserNameNextIv.setVisibility(View.GONE);
+        } else {
+            viewBinding.fragmentMeUserNameNextIv.setVisibility(View.VISIBLE);
+        }
     }
 
     public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
@@ -415,7 +434,6 @@
             }
         });
     }
-
 
 
 }
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/me/SetActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/me/SetActivity.java
index b52b828..a3c69bb 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/me/SetActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/me/SetActivity.java
@@ -153,6 +153,15 @@
             viewBinding.setNotificationSettingsIl.lineV.setVisibility(View.GONE);
         }
 
+        if (UserConfigManage.getInstance().isTourist_mode()) {
+            viewBinding.outTv.setVisibility(View.GONE);
+            viewBinding.setAccountSecurityIl.parentCl.setVisibility(View.GONE);
+            viewBinding.setAccountSecurityIl.lineV.setVisibility(View.GONE);
+            viewBinding.setNotificationSettingsIl.parentCl.setVisibility(View.GONE);
+            viewBinding.setNotificationSettingsIl.lineV.setVisibility(View.GONE);
+            viewBinding.setContextSwitchIl.parentCl.setVisibility(View.GONE);
+            viewBinding.setNotificationSettingsIl.lineV.setVisibility(View.GONE);
+        }
     }
 
     @Override
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/me/languageSelectionActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/me/languageSelectionActivity.java
index cb1cf88..5380c26 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/me/languageSelectionActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/me/languageSelectionActivity.java
@@ -20,6 +20,8 @@
 import com.hdl.photovoltaic.other.HdlPushLogic;
 import com.hdl.photovoltaic.other.HdlResidenceLogic;
 import com.hdl.photovoltaic.other.HdlThreadLogic;
+import com.hdl.photovoltaic.ui.BPowerStationActivity;
+import com.hdl.photovoltaic.ui.CPowerStationActivity;
 import com.hdl.photovoltaic.ui.StartActivity;
 import com.hdl.photovoltaic.ui.adapter.LanguageAdapter;
 import com.hdl.photovoltaic.uni.HDLUniMPSDKManager;
@@ -135,15 +137,27 @@
                             @Override
                             public void run() {
                                 hideLoading();
+                                UserConfigManage.getInstance().setTouristModeJumpLogic(false);
                                 UserConfigManage.getInstance().setCurrentAppLanguage(itemData.getLanguage());
                                 UserConfigManage.getInstance().Save();
                                 //閰嶇疆鎺ュ彛璇锋眰璇█
                                 HDLLinkPMSdk.setLanguage(UserConfigManage.getInstance().getCurrentAppLanguage());
 
                                 AppManagerUtils.getAppManager().finishAllActivity();
+//                                if (UserConfigManage.getInstance().isTourist_mode()) {
+//                                    Intent intent = new Intent();
+//                                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
+//                                    if (UserConfigManage.getInstance().isBAccount()) {
+//                                        intent.setClass(HDLApp.getInstance(), BPowerStationActivity.class);
+//                                    } else {
+//                                        intent.setClass(HDLApp.getInstance(), CPowerStationActivity.class);
+//                                    }
+//                                    startActivity(intent);
+//                                } else {
                                 Intent intent = new Intent();
                                 intent.setClass(HDLApp.getInstance(), StartActivity.class);
                                 startActivity(intent);
+//                                }
                                 HdlPushLogic.getInstance().pushAdd(new CloudCallBeak<String>() {
                                     @Override
                                     public void onSuccess(String pushId) {
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java
index 92b2dfa..7e966e3 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java
@@ -32,6 +32,7 @@
 import com.hdl.photovoltaic.enums.DebugType;
 import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch;
 import com.hdl.photovoltaic.enums.Languages;
+import com.hdl.photovoltaic.enums.LogoutType;
 import com.hdl.photovoltaic.enums.LowerTagType;
 import com.hdl.photovoltaic.enums.PowerStationStatus;
 import com.hdl.photovoltaic.enums.ProjectOperation;
@@ -41,6 +42,7 @@
 import com.hdl.photovoltaic.listener.CloudCallBeak;
 import com.hdl.photovoltaic.listener.LinkCallBack;
 import com.hdl.photovoltaic.listener.OnCallBeak;
+import com.hdl.photovoltaic.other.HdlAccountLogic;
 import com.hdl.photovoltaic.other.HdlCommonLogic;
 import com.hdl.photovoltaic.other.HdlDeviceLogic;
 import com.hdl.photovoltaic.other.HdlDialogLogic;
@@ -139,7 +141,12 @@
     }
 
     private void initEvent() {
-
+        viewBinding.exitTv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                HdlAccountLogic.getInstance().logout(LogoutType.NormalLogout);
+            }
+        });
         //鐢电珯鏍囩
         viewBinding.powerStationLabel.setOnClickListener(new View.OnClickListener() {
             @Override
@@ -574,6 +581,13 @@
 
 
     private void initView() {
+        if (UserConfigManage.getInstance().isTourist_mode()) {
+            viewBinding.addIv.setVisibility(View.GONE);
+            viewBinding.exitTv.setVisibility(View.VISIBLE);
+        } else {
+            viewBinding.addIv.setVisibility(View.VISIBLE);
+            viewBinding.exitTv.setVisibility(View.GONE);
+        }
         viewBinding.powerStationLabelParent.setVisibility(View.VISIBLE);
         viewBinding.deviceLabelParent.setVisibility(View.GONE);
 
@@ -604,7 +618,11 @@
             viewBinding.powerStationLabel.setTextAppearance(R.style.Text18Style);
             viewBinding.deviceLabel.setTextAppearance(R.style.Text14Style);
 //            viewBinding.editIv.setVisibility(View.VISIBLE);//缂栬緫鍥炬爣闅愯棌
-            viewBinding.addIv.setVisibility(View.VISIBLE);//娣诲姞鍥炬爣闅愯棌
+            if (UserConfigManage.getInstance().isTourist_mode()) {
+                viewBinding.addIv.setVisibility(View.GONE);//娣诲姞鍥炬爣闅愯棌
+            } else {
+                viewBinding.addIv.setVisibility(View.VISIBLE);//娣诲姞鍥炬爣闅愯棌
+            }
             viewBinding.powerStationLabelParent.setVisibility(View.VISIBLE);//鐢电珯鏍囩銆愮埗瀹瑰櫒銆戞樉绀�
             viewBinding.deviceLabelParent.setVisibility(View.GONE);//璁惧鏍囩銆愮埗瀹瑰櫒銆戦殣钘�
             if (viewBinding.deviceNullDataIc.getRoot().getVisibility() == View.VISIBLE) {
@@ -614,7 +632,11 @@
             viewBinding.deviceLabel.setTextAppearance(R.style.Text18Style);
             viewBinding.powerStationLabel.setTextAppearance(R.style.Text14Style);
 //            viewBinding.editIv.setVisibility(View.GONE);//缂栬緫鍥炬爣闅愯棌
-            viewBinding.addIv.setVisibility(View.GONE);//娣诲姞鍥炬爣闅愯棌
+            if (UserConfigManage.getInstance().isTourist_mode()) {
+                viewBinding.addIv.setVisibility(View.GONE);//娣诲姞鍥炬爣闅愯棌
+            } else {
+                viewBinding.addIv.setVisibility(View.GONE);//娣诲姞鍥炬爣闅愯棌
+            }
             viewBinding.powerStationLabelParent.setVisibility(View.GONE);//鐢电珯鏍囩銆愮埗瀹瑰櫒銆戦殣钘�
             viewBinding.deviceLabelParent.setVisibility(View.VISIBLE);//璁惧鏍囩銆愮埗瀹瑰櫒銆戞樉绀�
             if (viewBinding.homeNullDataIc.getRoot().getVisibility() == View.VISIBLE) {
diff --git a/app/src/main/java/com/hdl/photovoltaic/uni/MyForegroundService.java b/app/src/main/java/com/hdl/photovoltaic/uni/MyForegroundService.java
index e010d83..561110b 100644
--- a/app/src/main/java/com/hdl/photovoltaic/uni/MyForegroundService.java
+++ b/app/src/main/java/com/hdl/photovoltaic/uni/MyForegroundService.java
@@ -1,18 +1,22 @@
 package com.hdl.photovoltaic.uni;
 
+import android.app.ActivityManager;
 import android.app.Notification;
 import android.app.NotificationChannel;
 import android.app.NotificationManager;
 import android.app.Service;
+import android.content.Context;
 import android.content.Intent;
 import android.os.Build;
 import android.os.IBinder;
+import android.util.Log;
 
 import androidx.annotation.Nullable;
 import androidx.core.app.NotificationCompat;
 
 import com.hdl.photovoltaic.R;
 
+import java.util.List;
 
 
 public class MyForegroundService extends Service {
@@ -29,21 +33,17 @@
         isRunning = true;
 
     }
-//    @Override
-//    public void onTaskRemoved(Intent rootIntent) {
-//        super.onTaskRemoved(rootIntent);
-//        isRunning = false;
-
-    /// /        // 鍋滄鍓嶅彴鐘舵�侊紝绉婚櫎閫氱煡
-    /// /        stopForeground(true);  // true琛ㄧず绉婚櫎閫氱煡
-    /// ///        // 鍋滄鏈嶅姟
-    /// ///        stopSelf();
-//        // 1. 鍏堢Щ闄ゅ墠鍙扮姸鎬侊紙鍙�夛紝浣嗗缓璁級
-//        stopForeground(true);
-//
-//        // 2. 鍋滄鏈嶅姟
-//        stopSelf();
-//    }
+    @Override
+    public void onTaskRemoved(Intent rootIntent) {
+        super.onTaskRemoved(rootIntent);
+        // 褰撳簲鐢ㄤ粠鏈�杩戜换鍔′腑绉婚櫎鏃惰皟鐢�
+        stopForeground(true);
+        stopSelf();
+        killAppProcess(this);
+//        // 3. 缁撴潫杩涚▼
+//        android.os.Process.killProcess(android.os.Process.myPid());
+//        System.exit(0);
+    }
     @Override
     public int onStartCommand(Intent intent, int flags, int startId) {
         // 鍒涘缓閫氱煡
@@ -88,10 +88,41 @@
     public void onDestroy() {
         super.onDestroy();
         isRunning = false;
+        // 娓呯悊璧勬簮
+        stopForeground(true);
     }
 
     public static boolean isServiceRunning() {
         return isRunning;
     }
+
+    /**
+     * 鍏虫帀app鎵�鏈夎繘绋�
+     *
+     * @param context 涓婁笅鏂�
+     */
+    private void killAppProcess(Context context) {
+//        AppManagerUtils.getAppManager().finishAllActivity();
+//        Log.d("===6666666","");
+        try {
+            android.app.ActivityManager manager = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
+            List<ActivityManager.RunningAppProcessInfo> processInfos = manager.getRunningAppProcesses();
+            // 鍏堟潃鎺夌浉鍏宠繘绋嬶紝鏈�鍚庡啀鏉�鎺変富杩涚▼
+            for (android.app.ActivityManager.RunningAppProcessInfo runningAppProcessInfo : processInfos) {
+                if ((runningAppProcessInfo.uid == android.os.Process.myUid()) && (runningAppProcessInfo.pid != android.os.Process.myPid())) {
+                    try {
+                        android.os.Process.killProcess(runningAppProcessInfo.pid);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                }
+            }
+
+            android.os.Process.killProcess(android.os.Process.myPid());
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.exit(0);
+    }
 }
 
diff --git a/app/src/main/res/layout/activity_home_login.xml b/app/src/main/res/layout/activity_home_login.xml
index 1568e6a..13619dd 100644
--- a/app/src/main/res/layout/activity_home_login.xml
+++ b/app/src/main/res/layout/activity_home_login.xml
@@ -56,7 +56,17 @@
                     android:layout_marginStart="@dimen/dp_4"
                     android:src="@drawable/language_pull_down" />
             </LinearLayout>
-
+            <TextView
+                android:id="@+id/home_login_tourist_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="@dimen/dp_20"
+                android:layout_marginEnd="@dimen/dp_16"
+                android:layout_marginTop="@dimen/dp_60"
+                android:text="@string/tourist_mode"
+                android:textColor="@color/text_38C494"
+                android:textSize="@dimen/text_14"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintTop_toTopOf="parent"/>
             <!--    <TextView-->
             <!--        android:id="@+id/home_login_language_tv"-->
             <!--        android:layout_width="wrap_content"-->
diff --git a/app/src/main/res/layout/fragment_home_page.xml b/app/src/main/res/layout/fragment_home_page.xml
index 4e296a1..45da0b8 100644
--- a/app/src/main/res/layout/fragment_home_page.xml
+++ b/app/src/main/res/layout/fragment_home_page.xml
@@ -35,6 +35,18 @@
             android:layout_alignParentEnd="true"
             android:layout_centerVertical="true"
             android:src="@drawable/add" />
+
+        <TextView
+            android:id="@+id/exit_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/dp_20"
+            android:text="@string/exit"
+            android:textColor="@color/text_38C494"
+            android:textSize="@dimen/text_14"
+            android:layout_alignParentEnd="true"
+            android:layout_centerVertical="true"
+            android:visibility="gone"
+            />
     </RelativeLayout>
 
     <com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout
diff --git a/app/src/main/res/layout/fragment_house_list.xml b/app/src/main/res/layout/fragment_house_list.xml
index 1d87e30..6a83f7b 100644
--- a/app/src/main/res/layout/fragment_house_list.xml
+++ b/app/src/main/res/layout/fragment_house_list.xml
@@ -50,7 +50,17 @@
             android:layout_alignParentEnd="true"
             android:layout_centerVertical="true"
             android:src="@drawable/add" />
-
+        <TextView
+            android:id="@+id/exit_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/dp_20"
+            android:text="@string/exit"
+            android:textColor="@color/text_38C494"
+            android:textSize="@dimen/text_14"
+            android:layout_alignParentEnd="true"
+            android:layout_centerVertical="true"
+            android:visibility="gone"
+            />
 
     </RelativeLayout>
     <!--鐢电珯鏍囩-->
diff --git a/app/src/main/res/layout/fragment_me.xml b/app/src/main/res/layout/fragment_me.xml
index 0f1d15e..b612078 100644
--- a/app/src/main/res/layout/fragment_me.xml
+++ b/app/src/main/res/layout/fragment_me.xml
@@ -34,12 +34,22 @@
                     android:layout_centerInParent="true"
                     android:text="@string/me"
                     android:textColor="@color/text_FFACACAC"
-
                     android:textSize="@dimen/text_18" />
 
-
+                <TextView
+                    android:id="@+id/exit_tv"
+                    android:layout_width="wrap_content"
+                    android:layout_height="@dimen/dp_20"
+                    android:text="@string/exit"
+                    android:textColor="@color/text_38C494"
+                    android:textSize="@dimen/text_14"
+                    android:layout_centerInParent="true"
+                    android:layout_alignParentEnd="true"
+                  />
             </RelativeLayout>
 
+
+
             <androidx.constraintlayout.widget.ConstraintLayout
                 android:id="@+id/fragment_me_icon_parent_cl"
                 android:layout_width="match_parent"
diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml
index 0a61e39..d911612 100644
--- a/app/src/main/res/values-ar/strings.xml
+++ b/app/src/main/res/values-ar/strings.xml
@@ -374,4 +374,6 @@
     <string name="re_commissioning_power_station">鬲賲 廿毓丕丿丞 鬲卮睾賷賱 賲丨胤丞 丕賱胤丕賯丞 丕賱噩丿賷丿丞 賲賳 胤乇丕夭 APP</string>
     <string name="notification_settings">廿毓丿丕丿丕鬲 丕賱廿卮毓丕乇丕鬲</string>
     <string name="host_process_service_channel">賲賲乇 禺丿賲丞 毓賲賱賷丞 丕賱賲囟賷賮</string>
+    <string name="tourist_mode">賵囟毓 丕賱爻賷丕丨</string>
+    <string name="exit">丕賱丕賳爻丨丕亘</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml
index 73b732a..9068d01 100644
--- a/app/src/main/res/values-en/strings.xml
+++ b/app/src/main/res/values-en/strings.xml
@@ -376,4 +376,7 @@
     <string name="re_commissioning_power_station">The Xenterra app initiates the re-commissioning of the power station</string>
     <string name="notification_settings">Notification settings</string>
     <string name="host_process_service_channel">Host process service channel</string>
+    <string name="tourist_mode">Tourist mode</string>
+    <string name="exit">Exit</string>
+
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml
index 9bf2f3e..9396158 100644
--- a/app/src/main/res/values-zh/strings.xml
+++ b/app/src/main/res/values-zh/strings.xml
@@ -372,4 +372,6 @@
     <string name="re_commissioning_power_station">鏂扮壒閿愯兘app鍙戣捣鐢电珯閲嶆柊璋冭瘯</string>
     <string name="notification_settings">閫氱煡璁剧疆</string>
     <string name="host_process_service_channel">瀹夸富杩涚▼鏈嶅姟閫氶亾</string>
+    <string name="tourist_mode">娓稿妯″紡</string>
+    <string name="exit">閫�鍑�</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f5b8d16..b5e5d84 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -376,4 +376,6 @@
     <string name="re_commissioning_power_station">The Xenterra app initiates the re-commissioning of the power station</string>
     <string name="notification_settings">Notification settings</string>
     <string name="host_process_service_channel">Host process service channel</string>
+    <string name="tourist_mode">Tourist mode</string>
+    <string name="exit">Exit</string>
 </resources>
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index eff2298..b5950d5 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,7 +3,7 @@
 
 buildscript {
     ext {
-        agp_version = '4.1.3'
+        agp_version = '8.7.3'
     }
     repositories {
         google()
@@ -23,7 +23,7 @@
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
         //澧炲姞AGC鎻掍欢閰嶇疆锛屼互渚胯兘鍚屾鈥渁gconnect-services.json鈥濇枃浠朵腑鐨勪俊鎭�.锛堝崕涓烘瀬鍏夋帹閫侊級
-        classpath 'com.huawei.agconnect:agcp:1.6.1.300'
+        classpath 'com.huawei.agconnect:agcp:1.9.1.300'
         classpath 'com.google.gms:google-services:4.3.15'  // Google Services 鎻掍欢
     }
 }
diff --git a/countrypicker/build.gradle b/countrypicker/build.gradle
index b9c3af2..d7fb20d 100644
--- a/countrypicker/build.gradle
+++ b/countrypicker/build.gradle
@@ -1,6 +1,7 @@
 apply plugin: 'com.android.library'
 
 android {
+    namespace 'com.sahooz.library.countrypicker'
     compileSdkVersion 33
 
     defaultConfig {
@@ -26,7 +27,7 @@
 
 dependencies {
     implementation fileTree(dir: 'libs', include: ['*.jar'])
-    androidTestCompile('androidx.test.espresso:espresso-core:3.1.0', {
+    androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0', {
         exclude group: 'com.android.support', module: 'support-annotations'
     })
     implementation 'androidx.appcompat:appcompat:1.2.0'
diff --git a/gradle.properties b/gradle.properties
index d7154ba..05f3446 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -21,4 +21,4 @@
 android.nonTransitiveRClass=true
 # 鍙互灏唙4,v7搴撹浆鎴怉ndroid X
 android.enableJetifier=true
-android.bundle.enableUncompressedNativeLibs=false
\ No newline at end of file
+#android.bundle.enableUncompressedNativeLibs=false
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index d9c40af..63e8d6e 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
 #Wed Mar 19 11:08:39 CST 2025
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
diff --git a/pickerview/build.gradle b/pickerview/build.gradle
index 1183484..1f88b29 100644
--- a/pickerview/build.gradle
+++ b/pickerview/build.gradle
@@ -4,6 +4,7 @@
 
 
 android {
+    namespace 'com.bigkoo.pickerview'
     compileSdkVersion 33
 
     defaultConfig {
diff --git a/sdk/build.gradle b/sdk/build.gradle
index 73753d8..38ffc87 100644
--- a/sdk/build.gradle
+++ b/sdk/build.gradle
@@ -3,6 +3,7 @@
 }
 
 android {
+    namespace 'com.hdl.sdk.link'
     compileSdkVersion 33
 
     defaultConfig {
@@ -26,7 +27,9 @@
         sourceCompatibility JavaVersion.VERSION_1_8
         targetCompatibility JavaVersion.VERSION_1_8
     }
-
+    buildFeatures {
+        buildConfig = true
+    }
     /**
      * 鎵撳寘鑷姩鍛藉悕
      */
@@ -63,7 +66,7 @@
     publishing {
         publications {
             plugin(MavenPublication) {
-                from components.release
+                from components.findByName('release')
                 groupId 'com.hdl.android'
                 version "$android.defaultConfig.versionName"
                 artifactId = 'debugsdk'
diff --git a/third-zxing/build.gradle b/third-zxing/build.gradle
index 9b1be11..00cd9f0 100644
--- a/third-zxing/build.gradle
+++ b/third-zxing/build.gradle
@@ -2,6 +2,7 @@
 
 
 android {
+    namespace 'com.zxing'
     compileSdkVersion 33
     buildToolsVersion "29.0.1"
 
diff --git a/wheelview/build.gradle b/wheelview/build.gradle
index f7425a1..f8b17a9 100644
--- a/wheelview/build.gradle
+++ b/wheelview/build.gradle
@@ -4,6 +4,7 @@
 
 
 android {
+    namespace 'com.contrarywind.view'
     compileSdkVersion 33
 
     defaultConfig {

--
Gitblit v1.8.0