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