From a8a25a3ae373115f9342c766a7ee241e8ca8f479 Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期二, 15 七月 2025 15:20:34 +0800 Subject: [PATCH] 2025年07月15日15:20:32 --- app/src/main/java/com/hdl/photovoltaic/HDLApp.java | 225 +++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 175 insertions(+), 50 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java index ab82823..1af3a6a 100644 --- a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java +++ b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java @@ -1,12 +1,17 @@ package com.hdl.photovoltaic; import android.app.Activity; +import android.app.ActivityManager; +import android.app.AlarmManager; import android.app.Application; +import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.content.res.Configuration; import android.os.Build; +import android.os.Handler; import android.os.LocaleList; +import android.os.Process; import android.os.SystemClock; import android.text.TextUtils; import android.util.Log; @@ -17,14 +22,18 @@ import com.google.gson.Gson; import com.hdl.hdlhttp.HxHttpConfig; import com.hdl.linkpm.sdk.HDLLinkPMSdk; +import com.hdl.linkpm.sdk.core.exception.HDLException; import com.hdl.linkpm.sdk.user.HDLLinkPMUser; import com.hdl.linkpm.sdk.user.callback.IOnReloginListener; import com.hdl.linkpm.sdk.utils.HDLSDKSPUtils; import com.hdl.photovoltaic.config.AppConfigManage; import com.hdl.photovoltaic.config.ConstantManage; import com.hdl.photovoltaic.config.UserConfigManage; +import com.hdl.photovoltaic.enums.LogoutType; import com.hdl.photovoltaic.enums.LowerTagType; import com.hdl.photovoltaic.enums.NetworkType; +import com.hdl.photovoltaic.listener.CloudCallBeak; +import com.hdl.photovoltaic.other.HdlAccountLogic; import com.hdl.photovoltaic.other.HdlDeviceLogic; import com.hdl.photovoltaic.other.HdlFileLogic; import com.hdl.photovoltaic.other.HdlLogLogic; @@ -32,6 +41,7 @@ import com.hdl.photovoltaic.other.HdlResidenceLogic; import com.hdl.photovoltaic.other.HdlThreadLogic; import com.hdl.photovoltaic.ui.LoginActivity; +import com.hdl.photovoltaic.ui.StartActivity; import com.hdl.photovoltaic.uni.HDLUniMPSDKManager; import com.hdl.photovoltaic.utils.AppManagerUtils; import com.hdl.photovoltaic.utils.LocalManageUtil; @@ -42,15 +52,18 @@ import com.hdl.sdk.link.core.connect.HDLUdpConnect; import com.hdl.sdk.link.core.utils.QueueUtils; import com.hdl.sdk.link.core.utils.mqtt.MqttRecvClient; -import com.umeng.commonsdk.UMConfigure; +import com.umeng.analytics.MobclickAgent; +//import com.umeng.commonsdk.UMConfigure; import org.greenrobot.eventbus.EventBus; +import java.io.Console; import java.util.HashMap; +import java.util.List; import java.util.Locale; import java.util.Objects; -import cn.jpush.android.api.JPushInterface; +//import cn.jpush.android.api.JPushInterface; import io.dcloud.common.util.RuningAcitvityUtil; import me.jessyan.autosize.AutoSize; import me.jessyan.autosize.AutoSizeConfig; @@ -60,6 +73,7 @@ public class HDLApp extends Application { + final String TAG = HDLApp.class.getName(); //鎺у埗鎵撳嵃 Debug妯″紡鎵撳嵃 private Boolean isLogEnabled = true; //涓夋柟sdk鍒濆鍖栨爣璇� @@ -84,8 +98,15 @@ @Override public void onCreate() { super.onCreate(); - // 鑾峰彇褰撳墠杩涚▼鐨凱ID - Log.d("杩涚▼===", android.os.Process.myPid() + ""); + +// // 鑾峰彇褰撳墠杩涚▼鐨凱ID +// String processMessage = "杩涚▼Uid:" + Process.myUid() + "杩涚▼ID:" + Process.myPid() + " 杩涚▼鍚嶏細" + RuningAcitvityUtil.getAppName(getBaseContext()); +// Log.d("=======", processMessage); +// Log.d(TAG, processMessage); +// if (RuningAcitvityUtil.getAppName(getBaseContext()).contains(":")) { +// //闈炲師鐢熻繘绋嬶紝鐢ㄥ垵濮嬪寲鍚庨潰鐨� +// return; +// } mHDLApp = this; SharedPreUtils.init(this); getAppLanguage(); @@ -171,8 +192,8 @@ this.networkMonitoring(); //鍒濆鍖栨湰鍦癮ssets鏂囦欢澶硅祫婧愭枃浠� // this.initLocalAssetsData(); - //鍒濆鍖栧弸鐩烻DK - initUMengSDK(); +// //鍒濆鍖栧弸鐩烻DK锛屾斁鍦⊿tartActivity閲岄潰鍒濆鍖� +// initUMengSDK(); } @@ -182,12 +203,12 @@ * 闆嗘垚鏁欑▼鍦板潃锛歨ttps://developer.umeng.com/docs/119267/detail/118588 */ private void initUMengSDK() { - UMConfigure.preInit(this, "6801aec0bc47b67d833fd76d", "XenterraSolar"); - //appkey鍜宑hannl蹇呴』淇濇寔鍜岄鍒濆鍖栦竴鑷达紒锛侊紒 - //deviceType锛氳澶囩被鍨嬶紝UMConfigure.DEVICE_TYPE_PHONE涓烘墜鏈恒�乁MConfigure.DEVICE_TYPE_BOX涓虹洅瀛� - //pushSecret锛歅ush鎺ㄩ�佷笟鍔$殑secret - UMConfigure.init(this, "6801aec0bc47b67d833fd76d", "XenterraSolar", UMConfigure.DEVICE_TYPE_PHONE, ""); - UMConfigure.setLogEnabled(false);//AppConfigManage.isDebug() +// UMConfigure.preInit(this, "6801aec0bc47b67d833fd76d", "XenterraSolar"); +// //appkey鍜宑hannl蹇呴』淇濇寔鍜岄鍒濆鍖栦竴鑷达紒锛侊紒 +// //deviceType锛氳澶囩被鍨嬶紝UMConfigure.DEVICE_TYPE_PHONE涓烘墜鏈恒�乁MConfigure.DEVICE_TYPE_BOX涓虹洅瀛� +// //pushSecret锛歅ush鎺ㄩ�佷笟鍔$殑secret +// UMConfigure.init(this, "6801aec0bc47b67d833fd76d", "XenterraSolar", UMConfigure.DEVICE_TYPE_PHONE, ""); +// UMConfigure.setLogEnabled(false);//AppConfigManage.isDebug() } @@ -195,6 +216,7 @@ * 鍒濆鍖朒DLLinkPMSdk */ private void initHDLLinkPMSdk() { + Log.d("===1====", "2222222"); //1.鍒濆鍖朣DK HDLLinkPMSdk.initWithAppKey(this, AppConfigManage.getAppKey(), AppConfigManage.getAppSecret(), AppConfigManage.getAPPRegionUrl()); //2.璁剧疆鎵撳嵃 @@ -219,51 +241,110 @@ HDLLinkPMUser.getInstance().setOnReloginListener(new IOnReloginListener() { @Override public void onReLogin(int type) { - HdlLogLogic.print("鐩戝惉鍒扮櫥褰曢��鍑�---" + type, true); - //type: 0:姝e父閫�鍑� 1锛氭瀬鍏夋帹閫佸己鍒堕��鍑� - //鏀跺埌鐧诲綍澶勭悊閫氱煡锛屽叧闂墍鏈夐〉闈㈠苟鎵撳紑鐧诲綍椤甸潰 - AppManagerUtils.getAppManager().finishAllActivity(); -// HDLSDKSPUtils.clear();//搴曞眰鑷繁娓呯┖ + if (type == LogoutType.ServerSwitchingLogout.getValue()) { + new Handler().postDelayed(new Runnable() { + @Override + public void run() { + //鍒囨崲鏈嶅姟鍣ㄥ湴鍧�鐢ㄧ殑 + UserConfigManage.getInstance().setOnlineServer(!UserConfigManage.getInstance().isOnlineServer()); + UserConfigManage.getInstance().Save(); + restartApp(mHDLApp); + } + }, 500); + } else if (type == LogoutType.AbnormalLogout.getValue()) { + //寮傚父鎯呭喌-寮哄埗閲嶅惎搴旂敤 + new Handler().postDelayed(new Runnable() { + @Override + public void run() { + restartApp(mHDLApp); + } + }, 500); + } else { + HdlLogLogic.print("鐩戝惉鍒扮櫥褰曢��鍑�---" + type, true); + //鍒犻櫎鎺ㄩ�乀oken +// HdlResidenceLogic.getInstance().pushDel(null); + //type: 0:姝e父閫�鍑� 1锛氭瀬鍏夋帹閫佸己鍒堕��鍑� + //鏀跺埌鐧诲綍澶勭悊閫氱煡锛屽叧闂墍鏈夐〉闈㈠苟鎵撳紑鐧诲綍椤甸潰 + AppManagerUtils.getAppManager().finishAllActivity(); + // HDLSDKSPUtils.clear();//搴曞眰鑷繁娓呯┖ - //閲嶆柊鐧婚檰,榛樿鍚屾剰闅愮鏀跨瓥 - UserConfigManage.getInstance().setAcceiptPolicy(false); - //閲嶆柊璁惧畾涓�涓椂闂� - UserConfigManage.getInstance().setLoginDateTime(0); - UserConfigManage.getInstance().Save(); + //娓呯┖浣忓畢id + UserConfigManage.getInstance().setHomeId(""); + //閲嶆柊鐧婚檰,榛樿鍚屾剰闅愮鏀跨瓥 + UserConfigManage.getInstance().setAcceiptPolicy(false); + //閲嶆柊璁惧畾涓�涓椂闂� + UserConfigManage.getInstance().setLoginDateTime(0); + UserConfigManage.getInstance().Save(); - //娓呯┖娑堟伅缂撳瓨鏁版嵁 - HdlMessageLogic.getInstance().clearListMessage(); - //娓呯┖鐢电珯缂撳瓨鏁版嵁 - HdlResidenceLogic.getInstance().clearHouseList(); - //娓呯┖璁惧缂撳瓨鏁版嵁 - HdlDeviceLogic.getInstance().clearDeviceList(); - //娓呯┖缂撳瓨鏁版嵁 - if (mInfoMap != null) { - mInfoMap.clear(); - } - //鏂紑mqtt杩炴帴 - if (MqttRecvClient.getInstance() != null) { - MqttRecvClient.getInstance().disConnect(); - } - //鏂紑鎵�鏈塼cp杩炴帴涓旀竻绌鸿繛鎺ョ紦瀛� - // TODO: 10/10/23 + //娓呯┖娑堟伅缂撳瓨鏁版嵁 + HdlMessageLogic.getInstance().clearListMessage(); + //娓呯┖鐢电珯缂撳瓨鏁版嵁 + HdlResidenceLogic.getInstance().clearHouseList(); + //娓呯┖璁惧缂撳瓨鏁版嵁 + HdlDeviceLogic.getInstance().clearDeviceList(); + //娓呯┖缂撳瓨鏁版嵁 + if (mInfoMap != null) { + mInfoMap.clear(); + } + //鏂紑mqtt杩炴帴 + if (MqttRecvClient.getInstance() != null) { + MqttRecvClient.getInstance().disConnect(); + } + //鏂紑鎵�鏈塼cp杩炴帴涓旀竻绌鸿繛鎺ョ紦瀛� + // TODO: 10/10/23 // TcpSocketBoot.stopAllConnectLinkGateway(); - if (null != HDLUniMPSDKManager.getInstance().getUniMP()) { - HDLUniMPSDKManager.getInstance().getUniMP().closeUniMP(); + if (null != HDLUniMPSDKManager.getInstance().getUniMP()) { + HDLUniMPSDKManager.getInstance().getUniMP().closeUniMP(); + } + SystemClock.sleep(200); + initDCUniMPSDK(); + Intent intent = new Intent(getInstance(), LoginActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); + if (type == 1) { + intent.putExtra("isJpush", true); + } + startActivity(intent); } - SystemClock.sleep(200); - initDCUniMPSDK(); - Intent intent = new Intent(getInstance(), LoginActivity.class); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); - if (type == 1) { - intent.putExtra("isJpush", true); - } - startActivity(intent); } }); } + + public void test(Context context) { +// new Handler().postDelayed(() -> { +// // 1. 璁剧疆寤惰繜閲嶅惎 +// Intent restartIntent = new Intent(context, StartActivity.class); +// restartIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); +// +// PendingIntent pendingIntent = PendingIntent.getActivity( +// context, 0, restartIntent, PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_CANCEL_CURRENT +// ); +// +// AlarmManager am1 = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); +// am1.set(AlarmManager.RTC, System.currentTimeMillis() + 300, pendingIntent); +// +// int myUid = android.os.Process.myUid(); +// ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); +// String packageName = context.getPackageName(); +// +// for (ActivityManager.RunningAppProcessInfo proc : am.getRunningAppProcesses()) { +// if (proc.uid == myUid && proc.processName.startsWith(packageName)) { +// if (proc.pid != android.os.Process.myPid()) { +// try { +// android.os.Process.killProcess(proc.pid); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +// } +// } +// +// // 3. 閫�鍑哄綋鍓嶈繘绋� +// android.os.Process.killProcess(android.os.Process.myPid()); +// }, 500); + } + /** * 鍒濆鍖朥niMPSDK 灏忕▼搴廠DK @@ -293,8 +374,8 @@ * 鍒濆鍖栨瀬鍏塖DK */ private void initJPush() { - JPushInterface.setDebugMode(true); - JPushInterface.init(getBaseContext()); +// JPushInterface.setDebugMode(true); +// JPushInterface.init(getBaseContext()); } /** @@ -423,4 +504,48 @@ return this; } } + + + /** + * 閲嶅惎app + */ + private void restartApp(Context context) { + try { + MobclickAgent.onKillProcess(context); + Intent intent = new Intent(context, StartActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + context.startActivity(intent); + killAppProcess(context); + } catch (Exception e) { + String a = e.getMessage(); + } + } + + /** + * 鍏虫帀app鎵�鏈夎繘绋� + * + * @param context 涓婁笅鏂� + */ + private void killAppProcess(Context context) { +// AppManagerUtils.getAppManager().finishAllActivity(); + try { + android.app.ActivityManager manager = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); + List<android.app.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); + } } -- Gitblit v1.8.0