From 2744dfb7867000f044c60fe4ee9103ad51532b9b Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期三, 10 一月 2024 18:12:39 +0800 Subject: [PATCH] 2024年01月10日18:12:32 --- app/src/main/java/com/hdl/photovoltaic/HDLApp.java | 297 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 297 insertions(+), 0 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java index c5bc0f1..85f9657 100644 --- a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java +++ b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java @@ -1,11 +1,60 @@ package com.hdl.photovoltaic; import android.app.Application; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.location.Location; +import android.location.LocationListener; +import android.location.LocationManager; +import android.os.Bundle; +import android.text.TextUtils; + + +import androidx.annotation.NonNull; +import androidx.core.app.ActivityCompat; + +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.ConstantManage; +import com.hdl.photovoltaic.config.UserConfigManage; +import com.hdl.photovoltaic.enums.NetworkType; +import com.hdl.photovoltaic.other.HdlLogLogic; +import com.hdl.photovoltaic.other.HdlOtaLogic; +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.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 io.dcloud.common.util.net.NetWork; +import okhttp3.logging.HttpLoggingInterceptor; + public class HDLApp extends Application { + + //鎺у埗鎵撳嵃 Debug妯″紡鎵撳嵃 + private Boolean isLogEnabled = true; + //涓夋柟sdk鍒濆鍖栨爣璇� + private Boolean isInitThirdSDK = false; //澹版槑涓�涓綋鍓嶅簲鐢ㄧ殑瀹炰緥 private static HDLApp mHDLApp; //澹版槑涓�涓叕鍏辩殑淇℃伅鏄犲皠,鍙綋浣滃叏灞�鍙橀噺浣跨敤; @@ -18,8 +67,27 @@ @Override public void onCreate() { + super.onCreate(); mHDLApp = this; + SharedPreUtils.init(this); + getAppLanguage(); + initThirdSDK(); +// appLocationInfo(); + + } + + public void getAppLanguage() { + String language = UserConfigManage.getInstance().getCurrentAppLanguage(); + if (TextUtils.isEmpty(language)) { + //浠庡唴瀛橀噷闈㈣幏鍙栦笉鍒拌瑷�,鑾峰彇褰撳墠绯荤粺鐨�; + String str = getResources().getConfiguration().locale.getCountry(); + if (str.equals("CN") || str.equals("TW")) { + UserConfigManage.getInstance().setCurrentAppLanguage(LocalManageUtil.cn); + } else { + UserConfigManage.getInstance().setCurrentAppLanguage(LocalManageUtil.en); + } + } } public void setInfoMap(String key, String value) { @@ -44,4 +112,233 @@ return ""; } + public void removeKey(String key) { + mInfoMap.remove(key); + } + + /** + * 鍒濆鍖栦笁鏂圭浉鍏砈DK + */ + public void initThirdSDK() { + // 灏忕▼搴忚繘绋� + if (RuningAcitvityUtil.getAppName(getBaseContext()).contains("unimp")) { + 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); + //鍒濆鍖栨瀬鍏夋帹閫� + initJPush(); + initHDLLinkPMSdk(); + HDLLinkLocalSdk.getInstance().init(getInstance()); + initSocket(); + //4.鍒濆鍖朞KHttpLog 鏄惁寮�鍚� + setOKHttpLogOpen(isLogEnabled); + //鐩戝惉缃戠粶鐘舵�佸彉鍖� + this.networkMonitoring(); + //鍒濆鍖栨湰鍦癮ssets鏂囦欢澶硅祫婧愭枃浠� + this.initLocalAssetsData(); + + } + + + /** + * 鍒濆鍖朒DLLinkPMSdk + */ + private void initHDLLinkPMSdk() { + //1.鍒濆鍖朣DK + 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:姝e父閫�鍑� 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(); + } + //鏂紑鎵�鏈塼cp杩炴帴涓旀竻绌鸿繛鎺ョ紦瀛� + // 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); + + } + }); + + } + + /** + * 鍒濆鍖朥niMPSDK 灏忕▼搴廠DK + */ + private void initDCUniMPSDK() { + HDLUniMPSDKManager.getInstance().initDCUniMPSDK(this); + } + + //鍒濆鍖杝ocket鍙婂惎鍔ㄥ鐞嗘帴鏀跺埌鏁版嵁鐨勫鐞嗘柟娉� + private void initSocket() { + QueueUtils.getInstance().start(); + HDLUdpConnect.getInstance().initUdp(); + } + + /** + * 鍒濆鍖朞KHttpLog + */ + private void setOKHttpLogOpen(Boolean isOpen) { + if (isOpen) { + HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor(); + httpLoggingInterceptor.level(HttpLoggingInterceptor.Level.BODY); + HxHttpConfig.getInstance().addInterceptor(httpLoggingInterceptor); + } + } + + 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()); + } + }); + + + } + + + /** + * 鍒濆鍖杣ni app mqtt + */ + private void initUniMqtt() { + try { + String ip = 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杩炴帴鏈嶅姟绔け璐�--->"); + } + } + + public void appLocationInfo() { + LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); + if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + // TODO: Consider calling + // ActivityCompat#requestPermissions + // here to request the missing permissions, and then overriding + // public void onRequestPermissionsResult(int requestCode, String[] permissions, + // int[] grantResults) + // to handle the case where the user grants the permission. See the documentation + // for ActivityCompat#requestPermissions for more details. + return; + } + //寮�濮嬪畾浣嶆湇鍔★紝minTimeMs鏈�灏忔椂闂撮棿闅旓紙鍗曚綅涓烘绉掞級,minDistanceM鏈�灏忚窛绂婚棿闅旓紙鍗曚綅涓虹背锛夈�佹渶灏忔椂闂撮棿闅旓紙鍗曚綅涓烘绉掞級绛夊弬鏁般�� + locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, new LocationListener() { + @Override + public void onLocationChanged(@NonNull Location location) { + // 褰撲綅缃彂鐢熷彉鍖栨椂璋冪敤姝ゆ柟娉� + double latitude = location.getLatitude(); // 鑾峰彇绾害 + double longitude = location.getLongitude(); // 鑾峰彇缁忓害 + + HdlLogLogic.print("绾害--->" + latitude, true); + HdlLogLogic.print("缁忓害--->" + longitude, true); + // 杩欓噷鍙互鏍规嵁闇�姹傚鐞嗚幏鍙栧埌鐨勭粡绾害鏁版嵁 + } + + public void onStatusChanged(String provider, int status, Bundle extras) { + } + + public void onProviderEnabled(String provider) { + } + + public void onProviderDisabled(String provider) { + } + + }); + } + + } -- Gitblit v1.8.0