package com.hdl.photovoltaic; import android.Manifest; import android.app.Application; import android.content.pm.PackageManager; import androidx.annotation.NonNull; import com.google.gson.Gson; import com.google.gson.JsonObject; import com.hdl.photovoltaic.other.HdlLogLogic; import com.hdl.photovoltaic.uni.HDLUniMPSDKManager; import com.hdl.photovoltaic.utils.PermissionUtils; 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.connect.HDLUdpConnect; import com.hdl.sdk.link.core.utils.QueueUtils; import java.util.HashMap; import java.util.Objects; 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; public class HDLApp extends Application { //三方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(); HDLLinkLocalSdk.getInstance().init(getInstance()); initSocket(); } /** * 初始化UniMPSDK 小程序SDK */ private void initDCUniMPSDK() { HDLUniMPSDKManager.getInstance().initDCUniMPSDK(this); } //初始化socket及启动处理接收到数据的处理方法 private void initSocket() { QueueUtils.getInstance().start(); HDLUdpConnect.getInstance().initUdp(); } // /** // * 初始化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连接服务端失败"); // } // } }