package com.hdl.photovoltaic; import android.app.Application; import android.content.Context; import android.content.Intent; import android.content.res.Configuration; import android.content.res.Resources; import android.util.DisplayMetrics; import com.hdl.hdlhttp.HxHttpConfig; import com.hdl.linkpm.sdk.HDLLinkPMSdk; 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.UserConfigManage; import com.hdl.photovoltaic.ui.HomeLoginActivity; import com.hdl.photovoltaic.uni.HDLUniMPSDKManager; import com.hdl.photovoltaic.utils.AppManagerUtils; import com.hdl.photovoltaic.utils.LocalManageUtil; import com.hdl.photovoltaic.utils.SharedPreUtils; import com.hdl.sdk.link.HDLLinkLocalSdk; 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 java.util.HashMap; import java.util.Locale; import java.util.Objects; import io.dcloud.common.util.RuningAcitvityUtil; import okhttp3.logging.HttpLoggingInterceptor; public class HDLApp extends Application { //控制打印 Debug模式打印 private Boolean isLogEnabled = true; //三方sdk初始化标识 private Boolean isInitThirdSDK = false; //声明一个当前应用的实例 private static HDLApp mHDLApp; //声明一个公共的信息映射,可当作全局变量使用; public HashMap mInfoMap = new HashMap<>(); //利用单例模式获取当前应用的唯一实例 public static HDLApp getInstance() { return mHDLApp; } @Override public void onCreate() { super.onCreate(); mHDLApp = this; initThirdSDK(); } public void setInfoMap(String key, String value) { mInfoMap.put(key, value); } public String getValue(String key) { if (mInfoMap.containsKey(key)) { return mInfoMap.get(key); } return ""; } public String getKey(String value) { if (mInfoMap.containsValue(value)) { for (String key : mInfoMap.keySet()) { if (Objects.equals(mInfoMap.get(key), value)) { return key; } } } return ""; } /** * 初始化三方相关SDK */ public void initThirdSDK() { // 小程序进程 if (RuningAcitvityUtil.getAppName(getBaseContext()).contains("unimp")) { return; } if (isInitThirdSDK) { return; } isInitThirdSDK = true; // //5.初始化Bugly // CrashReport.initCrashReport(this, Constant.BUGLY_APP_ID, true); //6.初始化DCUniMPSDK initDCUniMPSDK(); // //7.初始化自定义IconToast // ToastUtils.getInstance().initIconToast(this); // //8.对fastjson进行设置,解决fastjosn转换成字符串时首字母大小写问题 // TypeUtils.compatibleWithFieldName = true; // //9.初始化网络工具 // NetWorkUtil.init(this); // //10.初始化极光推送 // initJPush(); initHDLLinkPMSdk(); HDLLinkLocalSdk.getInstance().init(getInstance()); initSocket(); //4.初始化OKHttpLog 是否开启 setOKHttpLogOpen(isLogEnabled); } /** * 初始化HDLLinkPMSdk */ private void initHDLLinkPMSdk() { //1.初始化SDK HDLLinkPMSdk.initWithAppKey(getInstance(), AppConfigManage.getAppKey(), AppConfigManage.getAppSecret(), AppConfigManage.getAPPRegionUrl()); //2.设置打印 HDLLinkPMSdk.setLogEnabled(isLogEnabled); //3.配置接口请求语言 Locale locale = LocalManageUtil.getSystemLocale(this); if (!locale.getLanguage().equals("zh")) { HDLLinkPMSdk.setLanguage("en"); } else { HDLLinkPMSdk.setLanguage("cn"); } // HDLLinkPMSdk.setLanguage("en");//强制使用英文 //4.监听登出处理 HDLLinkPMUser.getInstance().setOnReloginListener(new IOnReloginListener() { @Override public void onReLogin(int type) { //type: 0:正常退出 1:极光推送强制退出 //收到登录处理通知,关闭所有页面并打开登录页面 AppManagerUtils.getAppManager().finishAllActivity(); HDLSDKSPUtils.clear(); //重新登陆,默认同意隐私政策 UserConfigManage.getInstance().setAcceiptPolicy(true); //重新设定一个时间 UserConfigManage.getInstance().setLoginDateTime(0); UserConfigManage.getInstance().Save(); //断开mqtt连接 if (MqttRecvClient.getInstance() != null) { MqttRecvClient.getInstance().stop(); } //断开所有tcp连接且清空连接缓存 // TODO: 10/10/23 // TcpSocketBoot.stopAllConnectLinkGateway(); // if(null!=HDLUniMPSDKManager.getInstance().getUniMP()){ // LogUtils.d("asdfasdfasdfsdf我被删除啦"); // HDLUniMPSDKManager.getInstance().getUniMP().closeUniMP(); // } // initDCUniMPSDK(); Intent intent = new Intent(getInstance(), HomeLoginActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (type == 1) { intent.putExtra("isJpush", true); } startActivity(intent); } }); } /** * 初始化UniMPSDK 小程序SDK */ private void initDCUniMPSDK() { HDLUniMPSDKManager.getInstance().initDCUniMPSDK(this); } //初始化socket及启动处理接收到数据的处理方法 private void initSocket() { QueueUtils.getInstance().start(); HDLUdpConnect.getInstance().initUdp(); } /** * 初始化OKHttpLog */ private void setOKHttpLogOpen(Boolean isOpen) { if (isOpen) { HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor(); httpLoggingInterceptor.level(HttpLoggingInterceptor.Level.BODY); HxHttpConfig.getInstance().addInterceptor(httpLoggingInterceptor); } } // /** // * 初始化uni 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连接服务端失败"); // } // } }