From 5a43cb75120f69a57d5238e855eef8e82b3e4544 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期五, 25 四月 2025 13:15:22 +0800
Subject: [PATCH] 加了前台服务

---
 app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java |   54 ++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 34 insertions(+), 20 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java
index e1a886b..7ca79f6 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java
@@ -1,6 +1,8 @@
 package com.hdl.photovoltaic.ui;
 
 
+import android.content.Intent;
+import android.os.Build;
 import android.os.Bundle;
 import android.os.Process;
 import android.os.SystemClock;
@@ -23,13 +25,13 @@
 import com.hdl.photovoltaic.listener.CloudCallBeak;
 import com.hdl.photovoltaic.other.HdlDeviceLogic;
 import com.hdl.photovoltaic.other.HdlESLocalJsonLogic;
-import com.hdl.photovoltaic.other.HdlFileLogic;
 import com.hdl.photovoltaic.other.HdlLogLogic;
 import com.hdl.photovoltaic.other.HdlMqttLogic;
 import com.hdl.photovoltaic.other.HdlOtaLogic;
 import com.hdl.photovoltaic.other.HdlResidenceLogic;
 import com.hdl.photovoltaic.other.HdlThreadLogic;
 import com.hdl.photovoltaic.other.HdlUniLogic;
+import com.hdl.photovoltaic.services.ForeService;
 import com.hdl.photovoltaic.ui.bean.DeviceRemoteInfo;
 import com.hdl.photovoltaic.ui.bean.HouseIdBean;
 import com.hdl.photovoltaic.ui.bean.OidBean;
@@ -44,6 +46,7 @@
 import com.hdl.sdk.link.core.bean.gateway.GatewayBean;
 import com.hdl.sdk.link.core.config.HDLLinkConfig;
 import com.hdl.sdk.link.core.utils.mqtt.MqttRecvClient;
+import com.umeng.analytics.MobclickAgent;
 
 import org.greenrobot.eventbus.Subscribe;
 import org.greenrobot.eventbus.ThreadMode;
@@ -83,6 +86,18 @@
         this.pushTokens();
         //鑾峰彇浜戠鑴氭湰
         HdlESLocalJsonLogic.getInstance().getAllHdlESLocalJson();
+        mForegroundService= new Intent(this, ForeService.class);
+        startService();
+    }
+
+    Intent mForegroundService;
+    private void startService(){
+        // Android 8.0浣跨敤startForegroundService鍦ㄥ墠鍙板惎鍔ㄦ柊鏈嶅姟
+        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
+            startForegroundService(mForegroundService);
+        } else {
+            startService(mForegroundService);
+        }
     }
 
     @Override
@@ -131,7 +146,7 @@
                 return;
             }
             int index = -1;
-            List<GatewayBean> list = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(UserConfigManage.getInstance().getHomeId());
+            List<GatewayBean> list = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(UserConfigManage.getInstance().getHomeId(), null);
             for (int i = 0; i < list.size(); i++) {
                 GatewayBean gatewayBean = list.get(i);
                 if (gatewayBean.getGatewayId().equals(topics[2])) {
@@ -169,7 +184,7 @@
             HdlLogLogic.print(event.getTopic() + new Gson().toJson(event.getData()), true);
         } else if (event.getTopic().contains(ConstantManage.network_change_post)) {
 //            String wifi_ssid = WifiUtils.getInstance().getCurrentConnectWifiSsid();//鑾峰彇WiFi鐨剆sid闇�瑕佷綅缃潈闄愮殑
-            HdlLogLogic.print("鐩戝惉缃戠粶鐘舵��--->" + event.getData().toString() + "(" + event.getType() + ")", true);
+            HdlLogLogic.print("鐩戝惉缃戠粶鐘舵��---" + event.getData().toString() + "(" + event.getType() + ")", true);
             //绗竴娆″惎鍔ˋpp,浠ュ強鍒囨崲缃戠粶鐨勬椂鍊欐洿鏂�
             if (TextUtils.isEmpty(UserConfigManage.getInstance().getHomeId())) {
                 return;
@@ -205,8 +220,8 @@
             }
             String homeId = event.getData().toString();
             //杩涘幓浣忓畢璇︽儏uni璇诲彇閫嗗彉鍣ㄥ垪琛ㄦ垚鍔熷悗閫氱煡
-            for (int i = 0; i < HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(homeId).size(); i++) {
-                String gatewayId = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(homeId).get(i).getGatewayId();
+            for (int i = 0; i < HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(homeId, null).size(); i++) {
+                String gatewayId = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(homeId, null).get(i).getGatewayId();
                 //瀛楃涓叉槸鑷繁鎸夎鍒欐嫾鎺ョ殑,閲岄潰娉ㄥ唽涓婚鏃朵細瑙f瀽瀛楃涓�,鍙嬁getGatewayId()鍊�;
                 String topic = "/user/" + gatewayId + "/#";
                 //杩涘幓浣忓畢璇︽儏寮�濮嬭闃呬富棰�
@@ -236,7 +251,7 @@
         }
         UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(0);
         List<HouseIdBean> HouseIdList = HdlResidenceLogic.getInstance().getHouseIdList();
-        if (HouseIdList.size() == 0) {
+        if (HouseIdList.isEmpty()) {
             if (TextUtils.isEmpty(UserConfigManage.getInstance().getHomeId())) {
                 String path = HDLUniMP.UNI_EVENT_OPEN_HOME_Null_C;
                 HdlUniLogic.getInstance().openUniMP(path, null);
@@ -294,6 +309,8 @@
                     HDLUniMPSDKManager.getInstance().getUniMP().closeUniMP();
                 }
                 AppManagerUtils.getAppManager().finishAllActivity();
+                //濡傛灉寮�鍙戣�呰皟鐢╧ill鎴栬�卐xit涔嬬被鐨勬柟娉曟潃姝昏繘绋嬶紝鎴栬�呭弻鍑籦ack閿細鏉�姝昏繘绋嬶紝璇峰姟蹇呭湪姝や箣鍓嶈皟鐢∕obclickAgent.onKillProcess鏂规硶锛岀敤鏉ヤ繚瀛樼粺璁℃暟鎹��
+                MobclickAgent.onKillProcess(_mActivity);
                 Process.killProcess(Process.myPid());
             }
         }
@@ -306,6 +323,7 @@
         HdlUniLogic.getInstance().checkRemoveOtherUniMPEventCallBack();
         //绉婚櫎鐩戝惉
         HDLLinkLocalSdk.getInstance().removeAllTopicsListener(allTopicsListener);
+        stopService(mForegroundService);
     }
 
     /**
@@ -452,20 +470,16 @@
                         }
 
 
-                    }
-                    else if (linkResponse.getTopic().endsWith("/app/thing/property/send")) {
-//                        //璁惧鐘舵�佸彉鏇磘opic锛�/user/${homeId}/app/thing/property/send
-//                        if (linkResponse.getData() == null) {
-//                            HdlLogLogic.print("璁惧鐘舵�佸彉鏇�--->鏁版嵁涓虹┖", false);
-//                            return;
-//                        }
-//                        try {
-//                            Gson gson = new Gson();
-//                            Type typeOfT = new TypeToken<List<OidBean>>() {
-//                            }.getType();
-//                            String json = gson.toJson(linkResponse.getData());
-//                        } catch (Exception ignored) {
-//                        }
+                    } else if (linkResponse.getTopic().endsWith("/app/thing/property/send")) {
+                        //璁惧鐘舵�佸彉鏇磘opic锛�/user/${homeId}/app/thing/property/send
+                        if (linkResponse.getData() == null) {
+                            HdlLogLogic.print("璁惧鐘舵�佸彉鏇�--->鏁版嵁涓虹┖", false);
+                            return;
+                        }
+                        HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
+                        uniCallBackBaseBean.setType(linkResponse.getTopic());
+                        uniCallBackBaseBean.setData(linkResponse.getData());
+                        HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean);
                     }
 
                 }

--
Gitblit v1.8.0