From 3179371d3cb7e067937ae073c74a57bead023ba0 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期一, 25 八月 2025 10:26:54 +0800
Subject: [PATCH] 2025年08月25日10:26:52
---
app/src/main/java/com/hdl/photovoltaic/HDLApp.java | 511 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 484 insertions(+), 27 deletions(-)
diff --git a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
index 64956a6..db24c47 100644
--- a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
+++ b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
@@ -1,38 +1,94 @@
package com.hdl.photovoltaic;
-import android.Manifest;
+import android.app.Activity;
+import android.app.ActivityManager;
+import android.app.AlarmManager;
import android.app.Application;
-import android.content.pm.PackageManager;
+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;
-import androidx.annotation.NonNull;
+import androidx.multidex.MultiDex;
import com.google.gson.Gson;
-import com.google.gson.JsonObject;
+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;
+import com.hdl.photovoltaic.other.HdlMessageLogic;
+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.PermissionUtils;
+import com.hdl.photovoltaic.utils.AppManagerUtils;
+import com.hdl.photovoltaic.utils.LocalManageUtil;
+import com.hdl.photovoltaic.utils.NetworkUtils;
import com.hdl.photovoltaic.utils.SharedPreUtils;
import com.hdl.sdk.link.HDLLinkLocalSdk;
-import com.hdl.sdk.link.core.config.HDLLinkConfig;
+import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
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.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 io.dcloud.common.util.RuningAcitvityUtil;
-import io.dcloud.feature.sdk.DCSDKInitConfig;
-import io.dcloud.feature.sdk.DCUniMPSDK;
-import io.dcloud.feature.sdk.Interface.IDCUniMPPreInitCallback;
+import me.jessyan.autosize.AutoSize;
+import me.jessyan.autosize.AutoSizeConfig;
+import me.jessyan.autosize.onAdaptListener;
+import me.jessyan.autosize.utils.ScreenUtils;
+import okhttp3.logging.HttpLoggingInterceptor;
public class HDLApp extends Application {
+
+ final String TAG = HDLApp.class.getName();
+ //鎺у埗鎵撳嵃 Debug妯″紡鎵撳嵃
+ private Boolean isLogEnabled = true;
//涓夋柟sdk鍒濆鍖栨爣璇�
private Boolean isInitThirdSDK = false;
+ //涓夋柟sdk鍒濆鍖栨爣璇�
+ /**
+ * 涓夋柟sdk鍒濆鍖栨爣璇�
+ * 鍦⊿tartActivity閲岄潰鍒濆鍖栦笁鏂筍DK鐨勬爣璇�
+ */
+ public Boolean isStartInitThirdSDK = false;
//澹版槑涓�涓綋鍓嶅簲鐢ㄧ殑瀹炰緥
private static HDLApp mHDLApp;
//澹版槑涓�涓叕鍏辩殑淇℃伅鏄犲皠,鍙綋浣滃叏灞�鍙橀噺浣跨敤;
public HashMap<String, String> mInfoMap = new HashMap<>();
+
//鍒╃敤鍗曚緥妯″紡鑾峰彇褰撳墠搴旂敤鐨勫敮涓�瀹炰緥
public static HDLApp getInstance() {
@@ -41,10 +97,37 @@
@Override
public void onCreate() {
-
super.onCreate();
+
+// // 鑾峰彇褰撳墠杩涚▼鐨凱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;
- initThirdSDK();
+ SharedPreUtils.init(this);
+ getAppLanguage();
+ //棰勫垱寤鸿剼鏈琷son鏂囦欢澶�
+ HdlFileLogic.getInstance().createHdlESLocalJsonDirectory();
+ init();
+
+
+ }
+
+ public void getAppLanguage() {
+ String language = UserConfigManage.getInstance().getCurrentAppLanguage();
+ if (TextUtils.isEmpty(language)) {
+ //浠庡唴瀛橀噷闈㈣幏鍙栦笉鍒拌瑷�,鑾峰彇褰撳墠绯荤粺鐨�;
+ String str = getResources().getConfiguration().locale.getLanguage();
+ if (str.equals(LocalManageUtil.zh)) {
+ UserConfigManage.getInstance().setCurrentAppLanguage(LocalManageUtil.zh);
+ } else {
+ UserConfigManage.getInstance().setCurrentAppLanguage(LocalManageUtil.en);
+ }
+ }
}
public void setInfoMap(String key, String value) {
@@ -69,34 +152,232 @@
return "";
}
+ public void removeKey(String key) {
+ mInfoMap.remove(key);
+ }
+
/**
* 鍒濆鍖栦笁鏂圭浉鍏砈DK
*/
- public void initThirdSDK() {
+ public void init() {
// 灏忕▼搴忚繘绋�
- if (RuningAcitvityUtil.getAppName(getBaseContext()).contains("unimp")) {
+ if (RuningAcitvityUtil.getAppName(getBaseContext()).contains(":")) {
return;
}
if (isInitThirdSDK) {
return;
}
isInitThirdSDK = true;
-
// //5.鍒濆鍖朆ugly
// CrashReport.initCrashReport(this, Constant.BUGLY_APP_ID, true);
//6.鍒濆鍖朌CUniMPSDK
initDCUniMPSDK();
+// this.initUniMqtt();//濡傛灉鏄儴缃插埌/鎵嬫満涓婃寮忎娇鐢紝娉ㄩ噴鎺夎繖琛屼唬鐮佸氨鍙�
// //7.鍒濆鍖栬嚜瀹氫箟IconToast
// ToastUtils.getInstance().initIconToast(this);
// //8.瀵筬astjson杩涜璁剧疆锛岃В鍐砯astjosn杞崲鎴愬瓧绗︿覆鏃堕瀛楁瘝澶у皬鍐欓棶棰�
// TypeUtils.compatibleWithFieldName = true;
// //9.鍒濆鍖栫綉缁滃伐鍏�
// NetWorkUtil.init(this);
-// //10.鍒濆鍖栨瀬鍏夋帹閫�
+ initAutoSize();
+// //鍒濆鍖栨瀬鍏夋帹閫�
// initJPush();
+ initHDLLinkPMSdk();
HDLLinkLocalSdk.getInstance().init(getInstance());
initSocket();
+ //4.鍒濆鍖朞KHttpLog 鏄惁寮�鍚�
+ setOKHttpLogOpen(isLogEnabled);
+// initMqttClient();
+ //鐩戝惉缃戠粶鐘舵�佸彉鍖�
+ this.networkMonitoring();
+ //鍒濆鍖栨湰鍦癮ssets鏂囦欢澶硅祫婧愭枃浠�
+// this.initLocalAssetsData();
+// //鍒濆鍖栧弸鐩烻DK锛屾斁鍦⊿tartActivity閲岄潰鍒濆鍖�
+// initUMengSDK();
+
+
}
+
+ /**
+ * 鍒濆鍖栧弸鐩烻DK锛屾姄闂��鏃ュ織
+ * 闆嗘垚鏁欑▼鍦板潃锛歨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()
+ }
+
+
+ /**
+ * 鍒濆鍖朒DLLinkPMSdk
+ */
+ private void initHDLLinkPMSdk() {
+ Log.d("===1====", "2222222");
+ //1.鍒濆鍖朣DK
+ HDLLinkPMSdk.initWithAppKey(this, AppConfigManage.getAppKey(), AppConfigManage.getAppSecret(), AppConfigManage.getAPPRegionUrl());
+ //2.璁剧疆鎵撳嵃
+ HDLLinkPMSdk.setLogEnabled(isLogEnabled);
+
+ if (TextUtils.isEmpty(UserConfigManage.getInstance().getCurrentAppLanguage())) {
+ //榛樿閰嶇疆鎺ュ彛璇锋眰璇█鏄嫳鏂�
+ UserConfigManage.getInstance().setCurrentAppLanguage(LocalManageUtil.en);
+ }
+ //3.閰嶇疆鎺ュ彛璇锋眰璇█
+ HDLLinkPMSdk.setLanguage(UserConfigManage.getInstance().getCurrentAppLanguage());
+
+// //3.閰嶇疆鎺ュ彛璇锋眰璇█
+// Locale locale = LocalManageUtil.getSystemLocale(this);
+// if (!locale.getLanguage().equals("zh")) {
+// HDLLinkPMSdk.setLanguage("en");
+// } else {
+// HDLLinkPMSdk.setLanguage("zh");
+// }
+// HDLLinkPMSdk.setLanguage("en");//寮哄埗浣跨敤鑻辨枃
+ //4.鐩戝惉鐧诲嚭澶勭悊
+ HDLLinkPMUser.getInstance().setOnReloginListener(new IOnReloginListener() {
+ @Override
+ public void onReLogin(int type) {
+ 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 if (type == LogoutType.UniLogout.getValue()) {
+ AppManagerUtils.getAppManager().finishAllActivity();
+ //娓呯┖浣忓畢id
+ UserConfigManage.getInstance().setHomeId("");
+ UserConfigManage.getInstance().setAutomaticSkipNoNetworkFlag(true);
+ //閲嶆柊璁惧畾涓�涓椂闂�
+ 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
+// TcpSocketBoot.stopAllConnectLinkGateway();
+ 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);
+ startActivity(intent);
+ } else {
+ HdlLogLogic.print("鐩戝惉鍒扮櫥褰曢��鍑�---" + type, true);
+ //鍒犻櫎鎺ㄩ�乀oken
+// HdlResidenceLogic.getInstance().pushDel(null);
+ //type: 0:姝e父閫�鍑� 1锛氭瀬鍏夋帹閫佸己鍒堕��鍑�
+ //鏀跺埌鐧诲綍澶勭悊閫氱煡锛屽叧闂墍鏈夐〉闈㈠苟鎵撳紑鐧诲綍椤甸潰
+ AppManagerUtils.getAppManager().finishAllActivity();
+ // HDLSDKSPUtils.clear();//搴曞眰鑷繁娓呯┖
+
+ //娓呯┖浣忓畢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
+// TcpSocketBoot.stopAllConnectLinkGateway();
+ 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);
+ }
+
+ }
+ });
+
+ }
+
+ 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
@@ -111,17 +392,193 @@
HDLUdpConnect.getInstance().initUdp();
}
-// /**
-// * 鍒濆鍖杣ni app mqtt
-// */
-// private void initUniMqtt() {
-// try {
-// Through.getInstance().setUni(false);
-// //IP 鍦板潃瑕佹牴鎹疄闄呯殑鏇存敼
-// UniAppMqtt.getInstance().initMqtt(this, "tcp://192.168.3.124:1883", "Android_" + android.os.Build.BRAND + "_" + this.hashCode(), new String[]{"PCToAndroid/#"});
-// } catch (Exception e) {
-// LogUtils.e("娴嬭瘯Mqtt杩炴帴鏈嶅姟绔け璐�");
-// }
-// }
+ /**
+ * 鍒濆鍖朞KHttpLog
+ */
+ private void setOKHttpLogOpen(Boolean isOpen) {
+ if (isOpen) {
+ HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor();
+ httpLoggingInterceptor.level(HttpLoggingInterceptor.Level.BODY);
+ HxHttpConfig.getInstance().addInterceptor(httpLoggingInterceptor);
+ }
+ }
+ /**
+ * 鍒濆鍖栨瀬鍏塖DK
+ */
+ private void initJPush() {
+// JPushInterface.setDebugMode(true);
+// JPushInterface.init(getBaseContext());
+ }
+
+ /**
+ * 鐩戝惉缃戠粶鐘舵�佸彉鍖�
+ */
+ private void networkMonitoring() {
+ NetworkUtils.init(getInstance());
+ NetworkUtils.registerNetworkStatusChangedListener(new NetworkUtils.OnNetworkStatusChangedListener() {
+ @Override
+ public void onDisconnected() {
+ BaseEventBus baseEventBus = new BaseEventBus();
+ baseEventBus.setTopic(ConstantManage.network_change_post);
+ baseEventBus.setType(NetworkType.no_network.toString());
+ baseEventBus.setData("褰撳墠鏃犵綉缁滆繛鎺�");
+ EventBus.getDefault().post(baseEventBus);
+ }
+
+ @Override
+ public void onConnected(NetworkUtils.NetworkType networkType) {
+ BaseEventBus mobile_network = new BaseEventBus();
+ mobile_network.setTopic(ConstantManage.network_change_post);
+ mobile_network.setType(networkType.toString());
+ mobile_network.setData("姝e湪浣跨敤2G/3G/4G缃戠粶/wifi");
+ EventBus.getDefault().post(mobile_network);
+ }
+ });
+ }
+
+
+ /**
+ * 璇诲彇鍔犺浇鏈湴閰嶇疆鏂囦欢鏁版嵁
+ */
+ private void initLocalAssetsData() {
+ //鏁版嵁澶氭湁鐐瑰崱,鎵�浠ュ姞浜嗙嚎绋�
+ HdlThreadLogic.runSubThread(new Runnable() {
+ @Override
+ public void run() {
+ //鑾峰彇鍥藉鐪佸競鏁版嵁
+ LocalManageUtil.getLocationInfo(getInstance());
+ //鑾峰彇缁忕含搴�
+ LocalManageUtil.getLongLatInfo(getInstance());
+ }
+ });
+
+
+ }
+
+ /**
+ * 钃濇箹涓� 淇敼瀹藉害 640dp 瀹藉害鎸夌収dp銆乻p鏉ラ�傞厤
+ * 鏃嬭浆鍚庨珮鍙樺,鎸夋棆杞悗楂樺害閫傞厤,鎵�浠ュ搴︿笉鍐欐
+ */
+ private void initAutoSize() {
+ AutoSize.initCompatMultiProcess(this);
+ boolean isBaseOnWidth = getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT;
+ AutoSizeConfig.getInstance().setBaseOnWidth(true).setCustomFragment(true).setDesignWidthInDp(375).setDesignHeightInDp(812).setUseDeviceSize(false).setOnAdaptListener(new onAdaptListener() {
+ @Override
+ public void onAdaptBefore(Object target, Activity activity) {
+
+ AutoSizeConfig.getInstance().setScreenWidth(ScreenUtils.getScreenSize(activity)[0]);
+ AutoSizeConfig.getInstance().setScreenHeight(ScreenUtils.getScreenSize(activity)[1] + ScreenUtils.getHeightOfNavigationBar(activity) + ScreenUtils.getStatusBarHeight());
+
+ }
+
+ @Override
+ public void onAdaptAfter(Object target, Activity activity) {
+
+ }
+ });
+ }
+
+
+ /**
+ * 鍒濆鍖杣ni app mqtt
+ */
+ private void initUniMqtt() {
+ try {
+ String ip = "192.168.1.100";//NetworkUtils.getIPAddress(this);
+ if (TextUtils.isEmpty(ip)) {
+ return;
+ }
+ //IP 鍦板潃瑕佹牴鎹疄闄呯殑鏇存敼
+ com.hdl.photovoltaic.ui.test.UniAppMqtt.getInstance().initMqtt(this, "tcp://" + ip + ":1883", "Android_" + android.os.Build.BRAND + "_" + this.hashCode(), new String[]{"PCToAndroid/#"});
+ com.hdl.photovoltaic.ui.test.UniAppMqtt.getInstance().setUni(true);
+ } catch (Exception e) {
+ HdlLogLogic.print("娴嬭瘯Mqtt杩炴帴鏈嶅姟绔け璐�--->");
+ }
+ }
+
+
+ @Override
+ protected void attachBaseContext(Context base) {
+ MultiDex.install(base);
+ super.attachBaseContext(base);
+ }
+
+ /**
+ * 鏀寔涓嫳鏂囧垏鎹�
+ */
+ public Context getAppLocaleContext(Context context) {
+ try {
+ Locale locale = new Locale(UserConfigManage.getInstance().getCurrentAppLanguage());
+ Configuration configuration = context.getResources().getConfiguration();
+ configuration.setLocale(locale);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+ configuration.setLocales(new LocaleList(locale));
+ }
+ return context.createConfigurationContext(configuration);
+ } catch (Exception e) {
+ return context;
+ }
+ }
+
+ /**
+ * 鏀寔涓嫳鏂囧垏鎹�
+ */
+ public Context getAppLocaleContext() {
+ try {
+ Locale locale = new Locale(UserConfigManage.getInstance().getCurrentAppLanguage());
+ Configuration configuration = getResources().getConfiguration();
+ configuration.setLocale(locale);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+ configuration.setLocales(new LocaleList(locale));
+ }
+ return createConfigurationContext(configuration);
+ } catch (Exception e) {
+ 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