From 51d7007fd4bcaaa771d43a745cb6728d4e6d29ae Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期五, 05 一月 2024 18:04:41 +0800 Subject: [PATCH] 2024年01月05日18:04:39 --- app/src/main/java/com/hdl/photovoltaic/broadcast/NetworkChangeReceiver.java | 66 ++-- app/src/main/java/com/hdl/photovoltaic/utils/NetworkUtils123.java | 83 +++++ app/src/main/res/layout/activity_test_main.xml | 15 + app/src/main/java/com/hdl/photovoltaic/HDLApp.java | 49 ++- app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java | 11 app/src/main/res/layout/activity_test_log.xml | 24 + app/src/main/java/com/hdl/photovoltaic/other/HdlOtaLogic.java | 7 app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java | 4 app/src/main/java/com/hdl/photovoltaic/ui/me/MeFragment.java | 3 app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java | 5 app/src/main/java/com/hdl/photovoltaic/other/HdlJpushLogic.java | 25 + app/src/main/java/com/hdl/photovoltaic/ui/test/TestMainActivity.java | 16 app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java | 7 app/src/main/java/com/hdl/photovoltaic/ui/test/TestLogActivity.java | 89 ++++-- app/src/main/java/com/hdl/photovoltaic/utils/NetworkUtils.java | 381 +++++++++++++++++++++++---- app/src/main/java/com/hdl/photovoltaic/jpush/JPushReceiverService.java | 6 app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java | 14 17 files changed, 618 insertions(+), 187 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java index 4514325..a61232e 100644 --- a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java +++ b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java @@ -1,15 +1,8 @@ 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; @@ -18,21 +11,22 @@ 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.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.other.HdlThreadLogic; +import com.hdl.photovoltaic.enums.NetworkType; 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; @@ -134,9 +128,10 @@ initSocket(); //4.鍒濆鍖朞KHttpLog 鏄惁寮�鍚� setOKHttpLogOpen(isLogEnabled); - - + //鐩戝惉缃戠粶鐘舵�佸彉鍖� + this.networkMonitoring(); } + /** * 鍒濆鍖朒DLLinkPMSdk @@ -223,6 +218,32 @@ } + /** + * 鐩戝惉缃戠粶鐘舵�佸彉鍖� + */ + 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); + } + }); + } + // /** // * 鍒濆鍖杣ni app mqtt diff --git a/app/src/main/java/com/hdl/photovoltaic/broadcast/NetworkChangeReceiver.java b/app/src/main/java/com/hdl/photovoltaic/broadcast/NetworkChangeReceiver.java index 6b8769d..aed6caf 100644 --- a/app/src/main/java/com/hdl/photovoltaic/broadcast/NetworkChangeReceiver.java +++ b/app/src/main/java/com/hdl/photovoltaic/broadcast/NetworkChangeReceiver.java @@ -13,45 +13,49 @@ import org.greenrobot.eventbus.EventBus; + /** * 鐩戝惉缃戠粶鐘舵�佸彉鍖栫殑骞挎挱 */ public class NetworkChangeReceiver extends BroadcastReceiver { - @Override public void onReceive(Context context, Intent intent) { - ConnectivityManager connectionManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo networkInfo = connectionManager.getActiveNetworkInfo(); - if (networkInfo != null && networkInfo.isAvailable()) { - switch (networkInfo.getType()) { - case ConnectivityManager.TYPE_MOBILE: - BaseEventBus mobile_network = new BaseEventBus(); - mobile_network.setTopic(ConstantManage.network_change_post); - mobile_network.setType(NetworkType.g_4.toString()); - mobile_network.setData("姝e湪浣跨敤2G/3G/4G缃戠粶"); - EventBus.getDefault().post(mobile_network); - break; - case ConnectivityManager.TYPE_WIFI: - BaseEventBus wif_network = new BaseEventBus(); - wif_network.setTopic(ConstantManage.network_change_post); - wif_network.setType(NetworkType.wifi.toString()); - wif_network.setData("姝e湪浣跨敤wifi涓婄綉"); - EventBus.getDefault().post(wif_network); - break; - default: - break; - } - - } else { - BaseEventBus baseEventBus = new BaseEventBus(); - baseEventBus.setTopic(ConstantManage.network_change_post); - baseEventBus.setType(NetworkType.no_network.toString()); - baseEventBus.setData("褰撳墠鏃犵綉缁滆繛鎺�"); - EventBus.getDefault().post(baseEventBus); - } + //todo 宸茬粡鍦∟etworkUtils閲岄潰瀹炵幇 +// ConnectivityManager connectionManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); +// NetworkInfo networkInfo = connectionManager.getActiveNetworkInfo(); +// if (networkInfo != null && networkInfo.isAvailable()) { +// switch (networkInfo.getType()) { +// case ConnectivityManager.TYPE_MOBILE: +// BaseEventBus mobile_network = new BaseEventBus(); +// mobile_network.setTopic(ConstantManage.network_change_post); +// mobile_network.setType(NetworkType.g_4.toString()); +// mobile_network.setData("姝e湪浣跨敤2G/3G/4G缃戠粶"); +// EventBus.getDefault().post(mobile_network); +// break; +// case ConnectivityManager.TYPE_WIFI: +// BaseEventBus wif_network = new BaseEventBus(); +// wif_network.setTopic(ConstantManage.network_change_post); +// wif_network.setType(NetworkType.wifi.toString()); +// wif_network.setData("姝e湪浣跨敤wifi涓婄綉"); +// EventBus.getDefault().post(wif_network); +// break; +// default: +// break; +// } +// +// } else { +// BaseEventBus baseEventBus = new BaseEventBus(); +// baseEventBus.setTopic(ConstantManage.network_change_post); +// baseEventBus.setType(NetworkType.no_network.toString()); +// baseEventBus.setData("褰撳墠鏃犵綉缁滆繛鎺�"); +// EventBus.getDefault().post(baseEventBus); +// } } +} -} \ No newline at end of file + + + diff --git a/app/src/main/java/com/hdl/photovoltaic/jpush/JPushReceiverService.java b/app/src/main/java/com/hdl/photovoltaic/jpush/JPushReceiverService.java index 864299c..7da4acd 100644 --- a/app/src/main/java/com/hdl/photovoltaic/jpush/JPushReceiverService.java +++ b/app/src/main/java/com/hdl/photovoltaic/jpush/JPushReceiverService.java @@ -42,7 +42,7 @@ */ public void onMessage(Context context, CustomMessage customMessage) { - HdlLogLogic.print("鏋佸厜--->鑷畾涔夋秷鎭洖璋�--->" + new Gson().toJson(customMessage), true); + HdlLogLogic.print("鏋佸厜--->鑷畾涔夋秷鎭洖璋�--->" + new Gson().toJson(customMessage), false); } /** @@ -76,7 +76,7 @@ * @param registrationId 娉ㄥ唽 id */ public void onRegister(Context context, String registrationId) { - HdlLogLogic.print("鏋佸厜--->娉ㄥ唽鎴愬姛鍥炶皟Id--->" + registrationId, true); + HdlLogLogic.print("鏋佸厜--->娉ㄥ唽鎴愬姛鍥炶皟Id:" + registrationId, false); } /** @@ -86,7 +86,7 @@ * @param isConnected 闀胯繛鎺ョ姸鎬� */ public void onConnected(Context context, boolean isConnected) { - HdlLogLogic.print("鏋佸厜--->闀胯繛鎺ョ姸鎬佸洖璋�--->" + isConnected, true); + HdlLogLogic.print("鏋佸厜--->闀胯繛鎺ョ姸鎬佸洖璋�:" + isConnected, false); } /** diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java index 6175ea4..9946628 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java @@ -117,26 +117,26 @@ public void uploadDataToCloud(String homeId, String mac, CloudCallBeak<Boolean> callBeak) { getInverterOidList(mac, new LinkCallBack<List<OidBean>>() { @Override - public void onSuccess(List<OidBean> obj) { - if (obj == null) { + public void onSuccess(List<OidBean> oidBeanList) { + if (oidBeanList == null) { return; } - fullUpdateOid(homeId, obj, new CloudCallBeak<Boolean>() { + fullUpdateOid(homeId, oidBeanList, new CloudCallBeak<Boolean>() { @Override public void onSuccess(Boolean obj) { - HdlLogLogic.print("涓婁紶oid鍒楄〃鍒颁簯绔垚鍔�-->" + homeId + "--->" + mac, true); + HdlLogLogic.print("涓婁紶oid鍒楄〃鍒颁簯绔垚鍔�--->浣忓畢id:" + homeId + "--->mac:" + mac, true); } @Override public void onFailure(HDLException e) { - HdlLogLogic.print("涓婁紶oid鍒楄〃鍒颁簯绔け璐�-->" + homeId + "--->" + mac + "-->" + e.getMsg() + "(" + e.getCode() + ")", true); + HdlLogLogic.print("涓婁紶oid鍒楄〃鍒颁簯绔け璐�--->浣忓畢id:" + homeId + "--->mac:" + mac + "-->" + e.getMsg() + "(" + e.getCode() + ")", true); } }); } @Override public void onError(HDLLinkException e) { - HdlLogLogic.print("鑾峰彇閫嗗彉鍣╫id鍒楄〃澶辫触-->" + homeId + "--->" + mac + "-->" + e.getMsg() + "(" + e.getCode() + ")", true); + HdlLogLogic.print("鑾峰彇閫嗗彉鍣╫id鍒楄〃澶辫触--->浣忓畢id:" + homeId + "--->mac:" + mac + "-->" + e.getMsg() + "(" + e.getCode() + ")", true); } }); @@ -332,7 +332,6 @@ cloudCallBeak.onSuccess(true); } - HdlLogLogic.print("鍏ㄩ噺鏇存柊oid鍒颁簯绔垚鍔�--->", true); } @@ -341,7 +340,6 @@ if (cloudCallBeak != null) { cloudCallBeak.onFailure(e); } - HdlLogLogic.print("鍏ㄩ噺鏇存柊oid鍒颁簯绔け璐�--->" + e.getMsg() + "(" + e.getCode() + ")", true); } }); diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java index d45e982..dd17841 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java @@ -27,9 +27,9 @@ private static volatile HdlFileLogic sHdlFileLogic; /** - * 琛ㄧず1m澶у皬鏁版嵁 + * 琛ㄧず0.5m澶у皬鏁版嵁 */ - private final int mDataSize = 1; + private final double mDataSize = 0.5; /** * 鑾峰彇褰撳墠瀵硅薄 diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlJpushLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlJpushLogic.java index db36dde..897176d 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlJpushLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlJpushLogic.java @@ -66,17 +66,20 @@ * 娣诲姞鍦ㄦ帹閫佹暟鎹埌缂撳瓨鍒楄〃涓� */ private void addPushDataToMemoryList(JPushMessageInfoBean jPushMessageInfoBean) { - if (TextUtils.isEmpty(jPushMessageInfoBean.getExpantContent())) { - return; + try { + if (TextUtils.isEmpty(jPushMessageInfoBean.getExpantContent())) { + return; + } + Gson gson = new Gson(); + MessageBean messageBean = gson.fromJson(jPushMessageInfoBean.getExpantContent(), MessageBean.class); + if (messageBean == null) { + return; + } + messageBean.setTitle(jPushMessageInfoBean.getTitle()); + messageBean.setDeviceDesc(jPushMessageInfoBean.getContent()); + HdlMessageLogic.getInstance().setListMessage(messageBean, 0); + HdlLogLogic.print("娣诲姞鍦ㄦ帹閫佹暟鎹埌缂撳瓨鍒楄〃涓�--->鎴愬姛"); + } catch (Exception ignored) { } - Gson gson = new Gson(); - MessageBean messageBean = gson.fromJson(jPushMessageInfoBean.getExpantContent(), MessageBean.class); - if (messageBean == null) { - return; - } - messageBean.setTitle(jPushMessageInfoBean.getTitle()); - messageBean.setDeviceDesc(jPushMessageInfoBean.getContent()); - HdlMessageLogic.getInstance().setListMessage(messageBean, 0); - HdlLogLogic.print("娣诲姞鍦ㄦ帹閫佹暟鎹埌缂撳瓨鍒楄〃涓�--->鎴愬姛"); } } diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlOtaLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlOtaLogic.java index 37f8aa4..7cb837f 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlOtaLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlOtaLogic.java @@ -27,9 +27,8 @@ import com.hdl.photovoltaic.listener.CloudCallBeak; import com.hdl.photovoltaic.listener.LinkCallBack; import com.hdl.photovoltaic.utils.AesUtils; -import com.hdl.photovoltaic.utils.AppManagerUtils; import com.hdl.photovoltaic.utils.Md5Utils; -import com.hdl.photovoltaic.utils.NetworkUtils; +import com.hdl.photovoltaic.utils.NetworkUtils123; import com.hdl.sdk.link.common.exception.HDLLinkException; import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus; import com.hdl.sdk.link.core.callback.HDLLinkCallBack; @@ -39,12 +38,10 @@ import java.io.File; import java.io.FileOutputStream; -import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import okhttp3.ResponseBody; @@ -503,7 +500,7 @@ //1,寤虹珛鏈湴鏈嶅姟锛� //2锛屽憡璇夌綉鍏虫墜鏈篿p鍜岀鍙o紱 //瀹炰緥鍖� 鑾峰彇ip 鍦板潃 - MyNanoHttpServer.getInstance(NetworkUtils.getInstance().getIPAddress(HDLApp.getInstance())); + MyNanoHttpServer.getInstance(NetworkUtils123.getInstance().getIPAddress(HDLApp.getInstance())); //MyNanoHttpServer.getInstance("127.0.0.1"); intentServer = new Intent(); intentServer.setClass(HDLApp.getInstance(), MyNanoHttpService.class); diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java index 2e0010c..2d67ed3 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java @@ -28,8 +28,7 @@ import com.hdl.photovoltaic.ui.bean.OidBean; import com.hdl.photovoltaic.uni.HDLUniMP; import com.hdl.photovoltaic.uni.HDLUniMPSDKManager; -import com.hdl.photovoltaic.utils.AppManagerUtils; -import com.hdl.photovoltaic.utils.NetworkUtils; +import com.hdl.photovoltaic.utils.NetworkUtils123; import com.hdl.photovoltaic.utils.WifiUtils; import com.hdl.sdk.link.common.exception.HDLLinkCode; import com.hdl.sdk.link.common.exception.HDLLinkException; @@ -321,7 +320,7 @@ break; } } - HdlLogLogic.print("uni鍙戞潵鐨勬暟鎹�--->澶х被-->" + topic + "\r\n" + data, true); + HdlLogLogic.print("uni鍙戞潵鐨勬暟鎹�--->澶х被--->" + topic + "\r\n" + data, true); } catch (Exception e) { HdlLogLogic.print("uni鍙戞潵鐨勬暟鎹�--->" + e.getMessage(), true); } @@ -518,7 +517,7 @@ String version = getKeyValue("version", getKeyValue("data", data));//鍥轰欢鐗堟湰 String hardwareModel = getKeyValue("hardwareModel", getKeyValue("data", data));//浜戠涓婃枃浠禡D5 String imageId = getKeyValue("imageId", getKeyValue("data", data));//鍥轰欢闀滃儚id - String module = "FW#" + imageId; + String module = "FW#" + imageId;//妯″潡淇℃伅(HW锛氱‖浠�) //鍗囩骇鏈湴浼樺厛->浜戠鍗囩骇 HdlDeviceLogic.getInstance().isLocalConnect(deviceMac, new CloudCallBeak<Boolean>() { @@ -542,7 +541,7 @@ } String md5 = HDLMD5Utils.encodeMD5(data);//缃戝叧鍥轰欢闇�瑕� //鍗囩骇鍥轰欢鏂囦欢鍦板潃 - String upgradeFileLocalPathUrl = "http://" + NetworkUtils.getInstance().getIPAddress(HDLApp.getInstance()) + ":" + MyNanoHttpServer.HTTP_PORT + firmwarePathFileName; + String upgradeFileLocalPathUrl = "http://" + NetworkUtils123.getInstance().getIPAddress(HDLApp.getInstance()) + ":" + MyNanoHttpServer.HTTP_PORT + firmwarePathFileName; //閫氱煡缁欑綉鍏冲崌绾у浐浠舵枃浠跺湴鍧�绛変俊鎭� HdlOtaLogic.getInstance().pushUpgradePacketInfo(deviceMac, oid, module, version, data.length + "", upgradeFileLocalPathUrl, md5, new LinkCallBack<String>() { @Override @@ -798,7 +797,7 @@ } String md5 = HDLMD5Utils.encodeMD5(data);//缃戝叧椹卞姩闇�瑕� //鍗囩骇椹卞姩鏂囦欢鍦板潃 - String upgradeFileLocalPathUrl = "http://" + NetworkUtils.getInstance().getIPAddress(HDLApp.getInstance()) + ":" + MyNanoHttpServer.HTTP_PORT + drivePathFileName; + String upgradeFileLocalPathUrl = "http://" + NetworkUtils123.getInstance().getIPAddress(HDLApp.getInstance()) + ":" + MyNanoHttpServer.HTTP_PORT + drivePathFileName; //閫氱煡缁欑綉鍏冲崌绾ч┍鍔ㄦ枃浠跺湴鍧�绛変俊鎭� HdlOtaLogic.getInstance().pushUpgradePacketInfo(deviceMac, deviceOid, module, version, data.length + "", upgradeFileLocalPathUrl, md5, new LinkCallBack<String>() { @Override diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java index d1f5e46..d2289a6 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java @@ -91,8 +91,7 @@ this.registerAllTopicsListener(); //鍒濆鍖杕qtt瀹㈡埛绔� this.initMqttClient(); - //鐩戝惉缃戠粶鐘舵�佸彉鍖� - this.networkMonitoring(); + //涓婁紶鏋佸厜娉ㄥ唽ID this.pushTokens(); //鐐瑰嚮鏋佸厜閫氱煡鏍忔秷鎭繘鏉� @@ -134,13 +133,13 @@ UserConfigManage.getInstance().setPushId(pushId); UserConfigManage.getInstance().Save(); } - HdlLogLogic.print("娣诲姞鎺ㄩ�佹瀬鍏塈D--->registrationID===" + finalRegistrationID, true); + HdlLogLogic.print("娣诲姞鏋佸厜ID鍒颁簯绔�--->registrationID:" + finalRegistrationID, true); } @Override public void onFailure(HDLException e) { - HdlLogLogic.print("娣诲姞鎺ㄩ�佹瀬鍏塈D澶辫触--->registrationID===" + finalRegistrationID, true); + HdlLogLogic.print("娣诲姞鏋佸厜ID鍒颁簯绔け璐�--->registrationID:" + finalRegistrationID, true); } }); diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/me/MeFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/me/MeFragment.java index b7edec6..441618b 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/me/MeFragment.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/me/MeFragment.java @@ -1,6 +1,5 @@ package com.hdl.photovoltaic.ui.me; -import android.app.job.JobScheduler; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; @@ -308,7 +307,7 @@ @Override public void onFailure(HDLException e) { - HdlLogLogic.print("鑾峰彇鐢ㄦ埛鑷畾涔夐厤缃俯搴﹀崟浣嶈鎯�--->" + e.getMessage() + "(" + e.getCode() + ")", true); + HdlLogLogic.print("鑾峰彇鐢ㄦ埛鑷畾涔夐厤缃俯搴﹀崟浣嶈鎯�--->" + e.getMsg() + "(" + e.getCode() + ")", true); // HdlThreadLogic.toast(_mActivity, e); } }); diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java index 81c37bc..8efa489 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java @@ -220,11 +220,10 @@ //鎺ユ敹澶栭儴鐐瑰嚮浜嬩欢 if (eventBus.getTopic().equals(ConstantManage.homepage_title_tab_switch)) { if (eventBus.getType().equals(HomepageTitleTabSwitch.message.toString())) { - postEventBus(MessageFunctionTabSwitch.nascent); - HdlLogLogic.print("姝e湪鐐瑰嚮銆愭秷鎭��"); // 鍙栨秷绮樻�т簨浠� EventBus.getDefault().removeStickyEvent(eventBus); - + postEventBus(MessageFunctionTabSwitch.nascent); + HdlLogLogic.print("姝e湪鐐瑰嚮銆愭秷鎭��"); } } else if (eventBus.getTopic().equals(ConstantManage.message_count)) { if (eventBus.getType().equals(MessageStateType.untreated)) { diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/test/TestLogActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/test/TestLogActivity.java index 971bfb9..9deeb11 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/test/TestLogActivity.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/test/TestLogActivity.java @@ -4,6 +4,7 @@ import android.os.Bundle; import android.text.Spannable; import android.text.SpannableStringBuilder; +import android.text.TextUtils; import android.text.style.ForegroundColorSpan; import android.view.View; @@ -75,6 +76,19 @@ } }); + + viewBinding.clickToBottomTv.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { +// int offset = (viewBinding.sv.getChildAt(0).getMeasuredHeight() - viewBinding.sv.getHeight()); // 璁$畻闇�瑕佹粴鍔ㄧ殑璺濈 +// if (offset > 0) { +// viewBinding.sv.smoothScrollTo(0, offset); // 骞虫粦鍦版粴鍔ㄥ埌搴曢儴浣嶇疆 +// } else { +// viewBinding.sv.fullScroll(View.FOCUS_DOWN); // 鐩存帴婊氬姩鍒版渶鍚庝竴琛� +// } + viewBinding.sv.fullScroll(View.FOCUS_DOWN); // 鐩存帴婊氬姩鍒版渶鍚庝竴琛� + } + }); //涓婁紶鏃ュ織鍒颁簯绔笂 viewBinding.uploadingLogTv.setOnClickListener(new View.OnClickListener() { @Override @@ -126,39 +140,58 @@ * 鍒濆鍖栫晫闈� */ private void initView() { - HdlThreadLogic.runMainThread(new Runnable() { + String homeId = "娴嬭瘯浣忓畢ID=" + UserConfigManage.getInstance().getHomeId(); + String homeName = "娴嬭瘯浣忓畢鍚嶇О=" + UserConfigManage.getInstance().getHomeName(); + viewBinding.homeIdTv.setText(homeId); + viewBinding.homeNameTv.setText(homeName); + showLoading(); + HdlThreadLogic.runSubThread(new Runnable() { @Override public void run() { - - String homeId = "娴嬭瘯浣忓畢ID=" + UserConfigManage.getInstance().getHomeId(); - String homeName = "娴嬭瘯浣忓畢鍚嶇О=" + UserConfigManage.getInstance().getHomeName(); - viewBinding.homeIdTv.setText(homeId); - viewBinding.homeNameTv.setText(homeName); - HdlFileLogic.getInstance().delFileLien(HdlFileLogic.getInstance().getLogFileNamePath(), 2); String content = HdlLogLogic.readLog(); - int startIndex = 0; - int endIndex; - Map<Integer, Integer> map = new IdentityHashMap<>(); - String[] s = content.split("\r\n"); - for (int i = 0; i < s.length; i++) { - if (i == 0) { - endIndex = s[i].indexOf("s%"); - } else { - startIndex = 2 + startIndex + s[i - 1].length();//2鎹㈣绗﹂暱搴� - endIndex = 2 + startIndex + s[i].indexOf("s%");//2鎹㈣绗﹂暱搴� + HdlThreadLogic.runMainThread(new Runnable() { + @Override + public void run() { + hideLoading(); + if (TextUtils.isEmpty(content)) { + return; + } + int startIndex = 0; + int endIndex; + Map<Integer, Integer> map = new IdentityHashMap<>(); + String[] newArray = content.split("\r\n"); +// String[] newArray = new String[oldArray.length];//鍊掑簭 +// for (int i = oldArray.length - 1, j = 0; i >= 0; i--, j++) { +// newArray[j] = oldArray[i]; +// } +// StringBuilder stringBuilder = new StringBuilder(); +// for (String s : newArray) { +// stringBuilder.append(s).append("\r\n"); +// } +// content = stringBuilder.toString(); + for (int i = 0; i < newArray.length; i++) { + if (i == 0) { + endIndex = newArray[i].indexOf("s%"); + } else { + startIndex = 2 + startIndex + newArray[i - 1].length();//2鎹㈣绗﹂暱搴� + endIndex = 2 + startIndex + newArray[i].indexOf("s%");//2鎹㈣绗﹂暱搴� + } + map.put(startIndex, endIndex); + } + SpannableStringBuilder spannable = new SpannableStringBuilder(content.replace("s%", " "));//娉ㄦ剰s%鏄袱涓瓧绗�,鎵�浠ュ崰涓や綅 + for (Map.Entry<Integer, Integer> entry : map.entrySet()) { + int start = entry.getKey(); + int end = entry.getValue(); + //璁剧疆鏃堕棿浣撻獙鏄彟涓�绉嶉鑹� + spannable.setSpan(new ForegroundColorSpan(getColor(R.color.text_245EC3)), start, end, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); + } + viewBinding.replyContentTv.setText(spannable); + } - map.put(startIndex, endIndex); - } - SpannableStringBuilder spannable = new SpannableStringBuilder(content.replace("s%", " "));//娉ㄦ剰s%鏄袱涓瓧绗�,鎵�浠ュ崰涓や綅 - for (Map.Entry<Integer, Integer> entry : map.entrySet()) { - int start = entry.getKey(); - int end = entry.getValue(); - //璁剧疆鏃堕棿浣撻獙鏄彟涓�绉嶉鑹� - spannable.setSpan(new ForegroundColorSpan(getColor(R.color.text_245EC3)), start, end, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); - } - viewBinding.replyContentTv.setText(spannable); + }); } - }, null, null); + }); + } } \ No newline at end of file diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/test/TestMainActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/test/TestMainActivity.java index 7b3e8b9..3baa86d 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/test/TestMainActivity.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/test/TestMainActivity.java @@ -2,19 +2,22 @@ import androidx.recyclerview.widget.LinearLayoutManager; -import android.content.Context; import android.os.Bundle; import android.text.TextUtils; -import android.util.Log; import android.view.View; + import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import com.google.gson.reflect.TypeToken; import com.hdl.linkpm.sdk.core.exception.HDLException; -import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.base.CustomBaseActivity; import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.databinding.ActivityTestMainBinding; import com.hdl.photovoltaic.enums.ShowErrorMode; +import com.hdl.photovoltaic.internet.TcpClient; +import com.hdl.photovoltaic.internet.api.TopicApi; import com.hdl.photovoltaic.listener.CloudCallBeak; import com.hdl.photovoltaic.listener.LinkCallBack; import com.hdl.photovoltaic.other.HdlDeviceLogic; @@ -22,11 +25,13 @@ import com.hdl.photovoltaic.ui.bean.CloudInverterChildDeviceBean; import com.hdl.photovoltaic.ui.bean.OidBean; import com.hdl.photovoltaic.widget.ConfirmationCancelDialog; -import com.hdl.photovoltaic.widget.ConfirmationExceptionDialog; import com.hdl.sdk.link.common.exception.HDLLinkException; import com.hdl.sdk.link.core.bean.gateway.GatewayBean; +import com.hdl.sdk.link.core.bean.response.BaseLocalResponse; import com.hdl.sdk.link.core.callback.GatewayCallBack; +import com.hdl.sdk.link.core.callback.HDLLinkCallBack; +import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; @@ -74,6 +79,7 @@ private void initEvent() { viewBinding.topBackBtn.setOnClickListener(this); viewBinding.topLogBtn.setOnClickListener(this); + viewBinding.clickCommandTv.setOnClickListener(this); testTitleAdapter.setItemOnClickListener(new TestTitleAdapter.OnClickListener() { @Override public void OnClick(int position, String title) { @@ -105,6 +111,8 @@ } else if (id == viewBinding.topLogBtn.getId()) { startActivity(TestLogActivity.class); + } else if (id == viewBinding.clickCommandTv.getId()) { + } } diff --git a/app/src/main/java/com/hdl/photovoltaic/utils/NetworkUtils.java b/app/src/main/java/com/hdl/photovoltaic/utils/NetworkUtils.java index 73d32cd..5e5b85a 100644 --- a/app/src/main/java/com/hdl/photovoltaic/utils/NetworkUtils.java +++ b/app/src/main/java/com/hdl/photovoltaic/utils/NetworkUtils.java @@ -1,83 +1,346 @@ package com.hdl.photovoltaic.utils; +import static android.Manifest.permission.ACCESS_NETWORK_STATE; + +import android.content.BroadcastReceiver; import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; import android.net.ConnectivityManager; +import android.net.Network; import android.net.NetworkInfo; -import android.net.wifi.WifiInfo; -import android.net.wifi.WifiManager; +import android.net.NetworkRequest; +import android.os.Build; +import android.telephony.TelephonyManager; -import java.net.Inet4Address; -import java.net.InetAddress; -import java.net.NetworkInterface; -import java.net.SocketException; -import java.util.Enumeration; +import androidx.annotation.RequiresApi; +import androidx.annotation.RequiresPermission; +import com.hdl.photovoltaic.HDLApp; +import java.lang.ref.WeakReference; +import java.util.HashSet; +import java.util.Set; +import java.util.concurrent.Executors; + +/** + * Created by Tong on 2022/7/13. + */ public class NetworkUtils { - private static NetworkUtils mNetworkUtils; - - public static NetworkUtils getInstance() { - if (null == mNetworkUtils) { - synchronized (NetworkUtils.class) { - if (null == mNetworkUtils) { - mNetworkUtils = new NetworkUtils(); - } - } - } - return mNetworkUtils; + public enum NetworkType { + NETWORK_ETHERNET, + NETWORK_WIFI, + NETWORK_5G, + NETWORK_4G, + NETWORK_3G, + NETWORK_2G, + NETWORK_UNKNOWN, + NETWORK_NO } - /** - * 鑾峰緱IP鍦板潃锛屽垎涓轰袱绉嶆儏鍐�: - * 涓�锛氭槸wifi涓嬶紱 - * 浜岋細鏄Щ鍔ㄧ綉缁滀笅锛� - */ - public String getIPAddress(Context context) { - NetworkInfo info = ((ConnectivityManager) context - .getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo(); - if (info != null && info.isConnected()) { - if (info.getType() == ConnectivityManager.TYPE_MOBILE) {//褰撳墠浣跨敤2G/3G/4G缃戠粶 - try { - //Enumeration<NetworkInterface> en=NetworkInterface.getNetworkInterfaces(); - for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) { - NetworkInterface intf = en.nextElement(); - for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) { - InetAddress inetAddress = enumIpAddr.nextElement(); - if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) { - return inetAddress.getHostAddress(); + public interface OnNetworkStatusChangedListener { + void onDisconnected(); + + void onConnected(NetworkType networkType); + } + + public static void init(Context context) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + NetworkCallbackImpl.getInstance().init(context); + } else { + NetworkChangedReceiver.getInstance().init(context); + } + } + + + public static void registerNetworkStatusChangedListener(final OnNetworkStatusChangedListener listener) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + NetworkCallbackImpl.getInstance().registerListener(listener); + } else { + NetworkChangedReceiver.getInstance().registerListener(listener); + } + + + } + + public static void unregisterListener(final OnNetworkStatusChangedListener listener) { + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + NetworkCallbackImpl.getInstance().unregisterListener(listener); + } else { + NetworkChangedReceiver.getInstance().unregisterListener(listener); + } + } + + public static final class NetworkChangedReceiver extends BroadcastReceiver { + + private WeakReference<Context> mContext; + + private NetworkChangedReceiver() { + } + + private static class SingletonInstance { + private static final NetworkChangedReceiver INSTANCE = new NetworkChangedReceiver(); + } + + public static NetworkChangedReceiver getInstance() { + return SingletonInstance.INSTANCE; + } + + private NetworkType mType; + private final Set<OnNetworkStatusChangedListener> mListeners = new HashSet<>(); + + public void init(Context context) { + if (mContext == null) { + getInstance().mContext = new WeakReference<>(context.getApplicationContext()); + } + } + + @RequiresPermission(ACCESS_NETWORK_STATE) + public void registerListener(final OnNetworkStatusChangedListener listener) { + if (listener == null) return; + Executors.newSingleThreadExecutor().execute(new Runnable() { + @Override + public void run() { + int preSize = mListeners.size(); + mListeners.add(listener); + if (preSize == 0 && mListeners.size() == 1 && null != mContext.get()) { + mType = getNetworkType(); + IntentFilter intentFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION); + mContext.get().registerReceiver(NetworkChangedReceiver.getInstance(), intentFilter); + } + + } + }); + + } + + public boolean isRegistered(final OnNetworkStatusChangedListener listener) { + if (listener == null) return false; + return mListeners.contains(listener); + } + + public void unregisterListener(final OnNetworkStatusChangedListener listener) { + if (listener == null) return; + Executors.newSingleThreadExecutor().execute(new Runnable() { + @Override + public void run() { + int preSize = mListeners.size(); + mListeners.remove(listener); + if (preSize == 1 && mListeners.size() == 0 && mContext.get() != null) { + mContext.get().unregisterReceiver(NetworkChangedReceiver.getInstance()); + } + } + }); + } + + @Override + public void onReceive(Context context, Intent intent) { + if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) { + Executors.newSingleThreadExecutor().execute(new Runnable() { + @Override + public void run() { + NetworkType networkType = NetworkUtils.getNetworkType(); + if (mType == networkType) return; + mType = networkType; + if (networkType == NetworkType.NETWORK_NO) { + for (OnNetworkStatusChangedListener listener : mListeners) { + listener.onDisconnected(); + } + } else { + for (OnNetworkStatusChangedListener listener : mListeners) { + listener.onConnected(networkType); } } } - } catch (SocketException e) { - e.printStackTrace(); - } - } else if (info.getType() == ConnectivityManager.TYPE_WIFI) {//褰撳墠浣跨敤鏃犵嚎缃戠粶 - WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); - WifiInfo wifiInfo = wifiManager.getConnectionInfo(); - //璋冪敤鏂规硶灏唅nt杞崲涓哄湴鍧�瀛楃涓� - String ipAddress = intIP2StringIP(wifiInfo.getIpAddress());//寰楀埌IPV4鍦板潃 - return ipAddress; + }); } - } else { - //褰撳墠鏃犵綉缁滆繛鎺�,璇峰湪璁剧疆涓墦寮�缃戠粶 } - return null; + + } - /** - * 灏嗗緱鍒扮殑int绫诲瀷鐨処P杞崲涓篠tring绫诲瀷 - * - * @param ip int绫诲瀷 - * @return - - */ - public static String intIP2StringIP(int ip) { - return (ip & 0xFF) + "." + - ((ip >> 8) & 0xFF) + "." + - ((ip >> 16) & 0xFF) + "." + - (ip >> 24 & 0xFF); + @RequiresPermission(ACCESS_NETWORK_STATE) + private static boolean isEthernet() { + final ConnectivityManager cm = + (ConnectivityManager) HDLApp.getInstance().getSystemService(Context.CONNECTIVITY_SERVICE); + if (cm == null) return false; + final NetworkInfo info = cm.getNetworkInfo(ConnectivityManager.TYPE_ETHERNET); + if (info == null) return false; + NetworkInfo.State state = info.getState(); + if (null == state) return false; + return state == NetworkInfo.State.CONNECTED || state == NetworkInfo.State.CONNECTING; + } + + @RequiresPermission(ACCESS_NETWORK_STATE) + public static NetworkType getNetworkType() { + if (isEthernet()) { + return NetworkType.NETWORK_ETHERNET; + } + NetworkInfo info = getActiveNetworkInfo(); + if (info != null && info.isAvailable()) { + if (info.getType() == ConnectivityManager.TYPE_WIFI) { + return NetworkType.NETWORK_WIFI; + } else if (info.getType() == ConnectivityManager.TYPE_MOBILE) { + switch (info.getSubtype()) { + case TelephonyManager.NETWORK_TYPE_GSM: + case TelephonyManager.NETWORK_TYPE_GPRS: + case TelephonyManager.NETWORK_TYPE_CDMA: + case TelephonyManager.NETWORK_TYPE_EDGE: + case TelephonyManager.NETWORK_TYPE_1xRTT: + case TelephonyManager.NETWORK_TYPE_IDEN: + return NetworkType.NETWORK_2G; + + case TelephonyManager.NETWORK_TYPE_TD_SCDMA: + case TelephonyManager.NETWORK_TYPE_EVDO_A: + case TelephonyManager.NETWORK_TYPE_UMTS: + case TelephonyManager.NETWORK_TYPE_EVDO_0: + case TelephonyManager.NETWORK_TYPE_HSDPA: + case TelephonyManager.NETWORK_TYPE_HSUPA: + case TelephonyManager.NETWORK_TYPE_HSPA: + case TelephonyManager.NETWORK_TYPE_EVDO_B: + case TelephonyManager.NETWORK_TYPE_EHRPD: + case TelephonyManager.NETWORK_TYPE_HSPAP: + return NetworkType.NETWORK_3G; + + case TelephonyManager.NETWORK_TYPE_IWLAN: + case TelephonyManager.NETWORK_TYPE_LTE: + return NetworkType.NETWORK_4G; + case 20: + return NetworkType.NETWORK_5G; + default: + String subtypeName = info.getSubtypeName(); + if (subtypeName.equalsIgnoreCase("TD-SCDMA") + || subtypeName.equalsIgnoreCase("WCDMA") + || subtypeName.equalsIgnoreCase("CDMA2000")) { + return NetworkType.NETWORK_3G; + } else { + return NetworkType.NETWORK_UNKNOWN; + } + } + } else { + return NetworkType.NETWORK_UNKNOWN; + } + } + return NetworkType.NETWORK_NO; + } + + + @RequiresPermission(ACCESS_NETWORK_STATE) + private static NetworkInfo getActiveNetworkInfo() { + ConnectivityManager cm = + (ConnectivityManager) HDLApp.getInstance().getSystemService(Context.CONNECTIVITY_SERVICE); + if (cm == null) return null; + return cm.getActiveNetworkInfo(); + } + + + @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) + private static class NetworkCallbackImpl extends ConnectivityManager.NetworkCallback { + + + private final Set<OnNetworkStatusChangedListener> mListeners = new HashSet<>(); + private ConnectivityManager mConnectivityManager; + + private WeakReference<Context> mContext; + + public NetworkCallbackImpl() { + } + + private static class SingletonInstance { + private static final NetworkCallbackImpl INSTANCE = new NetworkCallbackImpl(); + } + + public static NetworkCallbackImpl getInstance() { + return SingletonInstance.INSTANCE; + } + + + public void init(Context context) { + if (mContext == null) { + getInstance().mContext = new WeakReference<>(context.getApplicationContext()); + } + } + + + @RequiresPermission(ACCESS_NETWORK_STATE) + public void registerListener(final OnNetworkStatusChangedListener listener) { + if (listener == null || mContext == null || mContext.get() == null) return; + + Executors.newSingleThreadExecutor().execute(new Runnable() { + + @Override + public void run() { + if (mContext.get() == null) return; + int preSize = mListeners.size(); + mListeners.add(listener); + if (preSize == 0 && mListeners.size() == 1) { + NetworkRequest.Builder builder = new NetworkRequest.Builder(); + NetworkRequest request = builder.build(); + mConnectivityManager = (ConnectivityManager) mContext.get().getSystemService(Context.CONNECTIVITY_SERVICE); + mConnectivityManager.requestNetwork(request, getInstance()); + } + + } + }); + + } + + + public void unregisterListener(final OnNetworkStatusChangedListener listener) { + if (listener == null) return; + Executors.newSingleThreadExecutor().execute(new Runnable() { + @Override + public void run() { + int preSize = mListeners.size(); + mListeners.remove(listener); + if (preSize == 1 && mListeners.size() == 0 && mConnectivityManager != null) { + mConnectivityManager.unregisterNetworkCallback(getInstance()); + } + } + }); + } + + @Override + public void onAvailable(Network network) { + super.onAvailable(network); + + //缃戠粶杩炴帴 + Executors.newSingleThreadExecutor().execute(new Runnable() { + @Override + public void run() { + NetworkInfo networkInfo = mConnectivityManager.getNetworkInfo(network); + if (networkInfo != null) { + NetworkType networkType = getNetworkType(); + for (OnNetworkStatusChangedListener listener : mListeners) { + listener.onConnected(networkType); + } + } + + } + }); + + } + + @Override + public void onLost(Network network) { + super.onLost(network); + //缃戠粶宸叉柇寮� + Executors.newSingleThreadExecutor().execute(new Runnable() { + @Override + public void run() { + for (OnNetworkStatusChangedListener listener : mListeners) { + listener.onDisconnected(); + } + } + }); + } + + } } + diff --git a/app/src/main/java/com/hdl/photovoltaic/utils/NetworkUtils123.java b/app/src/main/java/com/hdl/photovoltaic/utils/NetworkUtils123.java new file mode 100644 index 0000000..46f7287 --- /dev/null +++ b/app/src/main/java/com/hdl/photovoltaic/utils/NetworkUtils123.java @@ -0,0 +1,83 @@ +package com.hdl.photovoltaic.utils; + +import android.content.Context; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; +import android.net.wifi.WifiInfo; +import android.net.wifi.WifiManager; + +import java.net.Inet4Address; +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.SocketException; +import java.util.Enumeration; + + +public class NetworkUtils123 { + + private static NetworkUtils123 mNetworkUtils123; + + + public static NetworkUtils123 getInstance() { + if (null == mNetworkUtils123) { + synchronized (NetworkUtils123.class) { + if (null == mNetworkUtils123) { + mNetworkUtils123 = new NetworkUtils123(); + } + } + } + return mNetworkUtils123; + } + + /** + * 鑾峰緱IP鍦板潃锛屽垎涓轰袱绉嶆儏鍐�: + * 涓�锛氭槸wifi涓嬶紱 + * 浜岋細鏄Щ鍔ㄧ綉缁滀笅锛� + */ + public String getIPAddress(Context context) { + NetworkInfo info = ((ConnectivityManager) context + .getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo(); + if (info != null && info.isConnected()) { + if (info.getType() == ConnectivityManager.TYPE_MOBILE) {//褰撳墠浣跨敤2G/3G/4G缃戠粶 + try { + //Enumeration<NetworkInterface> en=NetworkInterface.getNetworkInterfaces(); + for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) { + NetworkInterface intf = en.nextElement(); + for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) { + InetAddress inetAddress = enumIpAddr.nextElement(); + if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) { + return inetAddress.getHostAddress(); + } + } + } + } catch (SocketException e) { + e.printStackTrace(); + } + } else if (info.getType() == ConnectivityManager.TYPE_WIFI) {//褰撳墠浣跨敤鏃犵嚎缃戠粶 + WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); + WifiInfo wifiInfo = wifiManager.getConnectionInfo(); + //璋冪敤鏂规硶灏唅nt杞崲涓哄湴鍧�瀛楃涓� + String ipAddress = intIP2StringIP(wifiInfo.getIpAddress());//寰楀埌IPV4鍦板潃 + return ipAddress; + } + } else { + //褰撳墠鏃犵綉缁滆繛鎺�,璇峰湪璁剧疆涓墦寮�缃戠粶 + } + return null; + } + + /** + * 灏嗗緱鍒扮殑int绫诲瀷鐨処P杞崲涓篠tring绫诲瀷 + * + * @param ip int绫诲瀷 + * @return - + */ + public static String intIP2StringIP(int ip) { + return (ip & 0xFF) + "." + + ((ip >> 8) & 0xFF) + "." + + ((ip >> 16) & 0xFF) + "." + + (ip >> 24 & 0xFF); + } + + +} diff --git a/app/src/main/res/layout/activity_test_log.xml b/app/src/main/res/layout/activity_test_log.xml index 3a0b898..a592164 100644 --- a/app/src/main/res/layout/activity_test_log.xml +++ b/app/src/main/res/layout/activity_test_log.xml @@ -84,10 +84,10 @@ android:id="@+id/homeId_tv" android:layout_width="wrap_content" android:layout_height="@dimen/dp_25" + android:layout_marginStart="4dp" android:textColor="@color/text_030D1C" android:textIsSelectable="true" android:textSize="@dimen/text_15" - android:layout_marginStart="@dimen/dp_5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -100,6 +100,19 @@ android:textSize="@dimen/text_15" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/homeId_tv" /> + + + <TextView + android:id="@+id/click_to_bottom_tv" + android:layout_width="wrap_content" + android:layout_height="@dimen/dp_25" + android:layout_marginEnd="20dp" + android:text="婊氬埌搴曢儴" + android:textColor="@color/text_245EC3" + android:textSize="@dimen/text_15" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" /> <View android:layout_width="match_parent" @@ -116,7 +129,6 @@ android:id="@+id/sv" android:layout_width="0dp" android:layout_height="0dp" - android:layout_marginBottom="@dimen/dp_50" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -128,7 +140,7 @@ <TextView android:id="@+id/reply_content_tv" - android:layout_width="wrap_content" + android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="start" android:padding="@dimen/dp_10" @@ -143,12 +155,12 @@ <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/dp_50" + android:background="@color/text_FFFFFFFF" + android:visibility="gone" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/sv" - android:background="@color/text_FFFFFFFF" - > + app:layout_constraintTop_toBottomOf="@+id/sv"> <TextView android:id="@+id/uploading_log_tv" diff --git a/app/src/main/res/layout/activity_test_main.xml b/app/src/main/res/layout/activity_test_main.xml index 4cfb376..63bf770 100644 --- a/app/src/main/res/layout/activity_test_main.xml +++ b/app/src/main/res/layout/activity_test_main.xml @@ -85,10 +85,10 @@ android:id="@+id/homeId_tv" android:layout_width="wrap_content" android:layout_height="@dimen/dp_25" + android:layout_marginStart="@dimen/dp_5" android:textColor="@color/text_030D1C" android:textIsSelectable="true" android:textSize="@dimen/text_15" - android:layout_marginStart="@dimen/dp_5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -102,6 +102,19 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/homeId_tv" /> + <TextView + android:id="@+id/click_command_tv" + android:layout_width="wrap_content" + android:layout_height="@dimen/dp_25" + android:layout_marginEnd="20dp" + android:text="娴嬭瘯鎸囦护" + android:textColor="@color/text_245EC3" + android:textSize="@dimen/text_15" + android:visibility="gone" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + <View android:layout_width="match_parent" android:layout_height="0.5dp" -- Gitblit v1.8.0