| | |
| | | package com.hdl.photovoltaic; |
| | | |
| | | import android.app.Application; |
| | | import android.content.ComponentName; |
| | | import android.content.Context; |
| | | import android.content.Intent; |
| | | import android.content.ServiceConnection; |
| | | import android.content.res.Configuration; |
| | | import android.content.res.Resources; |
| | | import android.os.IBinder; |
| | | import android.text.TextUtils; |
| | | import android.util.DisplayMetrics; |
| | | |
| | | |
| | | import com.hdl.hdlhttp.HxHttpConfig; |
| | | import com.hdl.linkpm.sdk.HDLLinkPMSdk; |
| | | import com.hdl.linkpm.sdk.core.exception.HDLException; |
| | | import com.hdl.linkpm.sdk.home.type.HomeType; |
| | | 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.bean.MqttInfo; |
| | | import com.hdl.photovoltaic.config.AppConfigManage; |
| | | import com.hdl.photovoltaic.config.ConstantManage; |
| | | import com.hdl.photovoltaic.config.UserConfigManage; |
| | | import com.hdl.photovoltaic.internet.HttpServer.MyNanoHttpServer; |
| | | import com.hdl.photovoltaic.internet.HttpServer.MyNanoHttpService; |
| | | import com.hdl.photovoltaic.other.HdlFileLogic; |
| | | import com.hdl.photovoltaic.other.HdlOtaLogic; |
| | | import com.hdl.photovoltaic.enums.NetworkType; |
| | | import com.hdl.photovoltaic.listener.CloudCallBeak; |
| | | import com.hdl.photovoltaic.other.HdlLogLogic; |
| | | import com.hdl.photovoltaic.other.HdlMessageLogic; |
| | | import com.hdl.photovoltaic.other.HdlMqttLogic; |
| | | import com.hdl.photovoltaic.other.HdlThreadLogic; |
| | | 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.NetworkUtils; |
| | | import com.hdl.photovoltaic.utils.SharedPreUtils; |
| | | import com.hdl.photovoltaic.widget.ConfirmationCancelDialog; |
| | | import com.hdl.sdk.link.HDLLinkLocalSdk; |
| | | 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 org.greenrobot.eventbus.EventBus; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.Locale; |
| | | import java.util.Objects; |
| | | |
| | | import cn.jpush.android.api.JPushInterface; |
| | | import io.dcloud.common.util.RuningAcitvityUtil; |
| | | import okhttp3.logging.HttpLoggingInterceptor; |
| | | |
| | | public class HDLApp extends Application { |
| | | |
| | | /** |
| | | * 默认中文 |
| | | */ |
| | | public String currentAppLanguage = "zh"; |
| | | //控制打印 Debug模式打印 |
| | | private Boolean isLogEnabled = true; |
| | | //三方sdk初始化标识 |
| | |
| | | |
| | | @Override |
| | | public void onCreate() { |
| | | |
| | | super.onCreate(); |
| | | |
| | | mHDLApp = this; |
| | | SharedPreUtils.init(this); |
| | | getAppLanguage(); |
| | | initThirdSDK(); |
| | | // appLocationInfo(); |
| | | } |
| | | |
| | | public void getAppLanguage() { |
| | | String language = SharedPreUtils.getSharedPreferencesKey("language"); |
| | | String language = UserConfigManage.getInstance().getCurrentAppLanguage(); |
| | | if (TextUtils.isEmpty(language)) { |
| | | //从内存里面获取不到语言,获取当前系统的; |
| | | String str = getResources().getConfiguration().locale.getCountry(); |
| | | if (str.equals("CN") || str.equals("TW")) { |
| | | language = "zh"; |
| | | UserConfigManage.getInstance().setCurrentAppLanguage(LocalManageUtil.zh); |
| | | } else { |
| | | language = "en"; |
| | | UserConfigManage.getInstance().setCurrentAppLanguage(LocalManageUtil.en); |
| | | } |
| | | } |
| | | currentAppLanguage = language; |
| | | |
| | | } |
| | | |
| | | public void setInfoMap(String key, String value) { |
| | |
| | | return ""; |
| | | } |
| | | |
| | | public void removeKey(String key) { |
| | | mInfoMap.remove(key); |
| | | } |
| | | |
| | | /** |
| | | * 初始化三方相关SDK |
| | | */ |
| | | public void initThirdSDK() { |
| | | // 小程序进程 |
| | | if (RuningAcitvityUtil.getAppName(getBaseContext()).contains("unimp")) { |
| | | if (RuningAcitvityUtil.getAppName(getBaseContext()).contains(":")) { |
| | | return; |
| | | } |
| | | if (isInitThirdSDK) { |
| | | return; |
| | | } |
| | | isInitThirdSDK = true; |
| | | |
| | | // //5.初始化Bugly |
| | | // CrashReport.initCrashReport(this, Constant.BUGLY_APP_ID, true); |
| | | //6.初始化DCUniMPSDK |
| | | initDCUniMPSDK(); |
| | | |
| | | // this.initUniMqtt();//如果是部署到/手机上正式使用,注释掉这行代码就可 |
| | | // //7.初始化自定义IconToast |
| | | // ToastUtils.getInstance().initIconToast(this); |
| | | // //8.对fastjson进行设置,解决fastjosn转换成字符串时首字母大小写问题 |
| | | // TypeUtils.compatibleWithFieldName = true; |
| | | // //9.初始化网络工具 |
| | | // NetWorkUtil.init(this); |
| | | // //10.初始化极光推送 |
| | | // initJPush(); |
| | | //初始化极光推送 |
| | | initJPush(); |
| | | initHDLLinkPMSdk(); |
| | | HDLLinkLocalSdk.getInstance().init(getInstance()); |
| | | initSocket(); |
| | | //4.初始化OKHttpLog 是否开启 |
| | | setOKHttpLogOpen(isLogEnabled); |
| | | |
| | | // initMqttClient(); |
| | | //监听网络状态变化 |
| | | this.networkMonitoring(); |
| | | //初始化本地assets文件夹资源文件 |
| | | // this.initLocalAssetsData(); |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 初始化HDLLinkPMSdk |
| | |
| | | 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"); |
| | | if (TextUtils.isEmpty(UserConfigManage.getInstance().getCurrentAppLanguage())) { |
| | | //默认配置接口请求语言是中文 |
| | | UserConfigManage.getInstance().setCurrentAppLanguage(LocalManageUtil.zh); |
| | | } |
| | | //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() { |
| | |
| | | UserConfigManage.getInstance().setLoginDateTime(0); |
| | | UserConfigManage.getInstance().Save(); |
| | | |
| | | //断开mqtt连接 |
| | | if (MqttRecvClient.getInstance() != null) { |
| | | MqttRecvClient.getInstance().stop(); |
| | | //清空消息缓存数据 |
| | | HdlMessageLogic.getInstance().clearListMessage(); |
| | | //清空缓存数据 |
| | | if (mInfoMap != null) { |
| | | mInfoMap.clear(); |
| | | } |
| | | // //断开mqtt连接 |
| | | // if (MqttRecvClient.getInstance() != null) { |
| | | // MqttRecvClient.getInstance().disConnect(); |
| | | // } |
| | | //断开所有tcp连接且清空连接缓存 |
| | | // TODO: 10/10/23 |
| | | // TcpSocketBoot.stopAllConnectLinkGateway(); |
| | | // if(null!=HDLUniMPSDKManager.getInstance().getUniMP()){ |
| | | // LogUtils.d("asdfasdfasdfsdf我被删除啦"); |
| | | // HDLUniMPSDKManager.getInstance().getUniMP().closeUniMP(); |
| | | // } |
| | | // initDCUniMPSDK(); |
| | | if (null != HDLUniMPSDKManager.getInstance().getUniMP()) { |
| | | HDLUniMPSDKManager.getInstance().getUniMP().closeUniMP(); |
| | | } |
| | | initDCUniMPSDK(); |
| | | Intent intent = new Intent(getInstance(), HomeLoginActivity.class); |
| | | intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); |
| | | if (type == 1) { |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 初始化极光SDK |
| | | */ |
| | | private void initJPush() { |
| | | JPushInterface.setDebugMode(true); |
| | | JPushInterface.init(getBaseContext()); |
| | | |
| | | // /** |
| | | // * 初始化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连接服务端失败"); |
| | | // } |
| | | // } |
| | | } |
| | | |
| | | /** |
| | | * 监听网络状态变化 |
| | | */ |
| | | 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("正在使用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()); |
| | | } |
| | | }); |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 初始化uni app mqtt |
| | | */ |
| | | private void initUniMqtt() { |
| | | try { |
| | | String ip = "10.10.35.79";//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连接服务端失败--->"); |
| | | } |
| | | } |
| | | } |