From 0ce9960bb073c10f8c12989291c94b98e6caf799 Mon Sep 17 00:00:00 2001
From: 562935844@qq.com
Date: 星期四, 31 八月 2023 17:18:11 +0800
Subject: [PATCH] deviceinfo加判空
---
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/cloud/CheckAppVersionListener.java | 11 ++
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java | 5
HDLSDK/.idea/gradle.xml | 1
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/event/EventDispatcher.java | 2
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java | 6 +
HDLSDK/settings.gradle | 2
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/cloud/HdlCloudController.java | 27 +++++
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java | 29 +++++
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/cloud/HdlCloudApi.java | 3
HDLSDK/com.hdl.sdk/build.gradle | 4
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/response/UpdateInfo.java | 90 ++++++++++++++++++
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/SPUtils.java | 53 ++++++++++
HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java | 58 +++++++++++
13 files changed, 286 insertions(+), 5 deletions(-)
diff --git a/HDLSDK/.idea/gradle.xml b/HDLSDK/.idea/gradle.xml
index 92c877d..c5f824a 100644
--- a/HDLSDK/.idea/gradle.xml
+++ b/HDLSDK/.idea/gradle.xml
@@ -11,6 +11,7 @@
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
+ <option value="$PROJECT_DIR$/app" />
<option value="$PROJECT_DIR$/com.hdl.sdk" />
<option value="$PROJECT_DIR$/hdl-connect" />
</set>
diff --git a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
index 73cae8c..057b11a 100644
--- a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
+++ b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
@@ -1,7 +1,10 @@
package com.hdl.hdlsdk;
import android.Manifest;
+import android.content.Context;
import android.content.Intent;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
@@ -38,9 +41,11 @@
import com.hdl.sdk.connect.bean.request.ListUploadRequest;
import com.hdl.sdk.connect.bean.response.BaseLocalResponse;
import com.hdl.sdk.connect.bean.response.GatewaySearchBean;
+import com.hdl.sdk.connect.bean.response.UpdateInfo;
import com.hdl.sdk.connect.callback.HDLLinkCallBack;
import com.hdl.sdk.connect.callback.HDLLinkResponseCallBack;
import com.hdl.sdk.connect.cloud.CallBackListener;
+import com.hdl.sdk.connect.cloud.CheckAppVersionListener;
import com.hdl.sdk.connect.cloud.HDLException;
import com.hdl.sdk.connect.config.HDLLinkConfig;
import com.hdl.sdk.connect.socket.HDLAuthSocket;
@@ -129,6 +134,32 @@
tv.setText("鐢宠鎴愬姛");
responseTv.setText(msg.toString());
secret = msg.toString();
+ }
+ });
+
+ }
+
+ void checkAppVersion() {
+ tv.setText("寮�濮嬫娴嬫洿鏂�...");
+ responseTv.setText("");
+
+// //姝e紡鏈嶅姟鍣�
+ String appKey = "i8hR07jzrIS";//appkey
+ String appSecret = "BmnJ8RWTtaVEBk24zPPF4UMwfYu0lAWU";//appsecret
+
+ String appCode = "1697150870315999233";//appCode
+
+ HDLLink.getInstance().checkAppVersion(this, appKey, appSecret, getAppVersionName(this), appCode, new CheckAppVersionListener() {
+ @Override
+ public void onSuccess(UpdateInfo info) {
+ tv.setText("鏈夋柊鏇存柊");
+ responseTv.setText(info.toString());
+ }
+
+ @Override
+ public void onError(HDLException e) {
+ tv.setText("妫�娴嬫洿鏂板け璐�");
+ responseTv.setText(e.getMsg());
}
});
@@ -265,6 +296,7 @@
beans.add(new DemoBean("UDP鍙戦�侊紝鐩戝惉涓婚鍥炲锛屽甫閲嶅彂甯﹀洖璋�"));
beans.add(new DemoBean("TCP鍙戦�侊紝鐩戝惉涓婚鍥炲锛屽甫閲嶅彂甯﹀洖璋�"));
beans.add(new DemoBean("閫�缃�"));
+ beans.add(new DemoBean("妫�娴嬫洿鏂�"));
demoAdapter = new DemoAdapter(beans);
rv.setAdapter(demoAdapter);
@@ -342,6 +374,10 @@
case 15:
//閫�缃�
deleteNetwork();
+ break;
+ case 16:
+ //妫�娴嬫洿鏂�
+ checkAppVersion();
break;
}
}
@@ -787,4 +823,26 @@
}
});
}
+
+ /**
+ * 鑾峰彇APP鐗堟湰
+ *
+ * @param context
+ * @return
+ */
+ public static String getAppVersionName(Context context) {
+ String versionName = "0";
+ try {
+ PackageManager packageManager = context.getPackageManager();
+ PackageInfo packageInfo = packageManager.getPackageInfo(context.getPackageName(), 0);
+ versionName = packageInfo.versionName;
+ if (TextUtils.isEmpty(versionName)) {
+ versionName = "0";
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return versionName;
+ }
+
}
\ No newline at end of file
diff --git a/HDLSDK/com.hdl.sdk/build.gradle b/HDLSDK/com.hdl.sdk/build.gradle
index 545c0b7..00a22db 100644
--- a/HDLSDK/com.hdl.sdk/build.gradle
+++ b/HDLSDK/com.hdl.sdk/build.gradle
@@ -8,8 +8,8 @@
defaultConfig {
minSdkVersion rootProject.minSdkVersion
targetSdkVersion rootProject.targetSdkVersion
- versionCode 5
- versionName "1.1.3"
+ versionCode 6
+ versionName "1.1.4"
}
buildTypes {
debug {
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/event/EventDispatcher.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/event/EventDispatcher.java
index 13f27a1..2f59e1d 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/event/EventDispatcher.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/event/EventDispatcher.java
@@ -147,7 +147,7 @@
listener.onMessage(o);
}
} catch (Exception e) {
-// LogUtils.e("post寮傚父1锛�" + e.getMessage());
+ LogUtils.e("post寮傚父1锛�" + e.getMessage());
}
}
});
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/SPUtils.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/SPUtils.java
index 17ceeab..60f6c5f 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/SPUtils.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/SPUtils.java
@@ -2,11 +2,17 @@
import android.content.Context;
import android.content.SharedPreferences;
+import android.util.Base64;
import com.hdl.sdk.common.HDLSdk;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
import java.util.Collections;
import java.util.Map;
import java.util.Set;
@@ -146,5 +152,52 @@
.apply();
}
+ private static String Object2String(Object object) {
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ ObjectOutputStream objectOutputStream = null;
+ try {
+ objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
+ objectOutputStream.writeObject(object);
+ String string = new String(Base64.encode(byteArrayOutputStream.toByteArray(), Base64.DEFAULT));
+ objectOutputStream.close();
+ return string;
+ } catch (IOException e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ private static Object String2Object(String objectString) {
+ byte[] mobileBytes = Base64.decode(objectString.getBytes(), Base64.DEFAULT);
+ ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(mobileBytes);
+ ObjectInputStream objectInputStream = null;
+ try {
+ objectInputStream = new ObjectInputStream(byteArrayInputStream);
+ Object object = objectInputStream.readObject();
+ objectInputStream.close();
+ return object;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ public static void saveSerializableEntity(String key, Object saveObject) {
+ SharedPreferences.Editor editor = getAppPreference().edit();
+ String string = Object2String(saveObject);
+ editor.putString(key, string);
+ editor.commit();
+ }
+
+ public static Object getSerializableEntity(String key) {
+ String string = getAppPreference().getString(key, null);
+ if (string != null) {
+ Object object = String2Object(string);
+ return object;
+ } else {
+ return null;
+ }
+ }
+
}
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java
index d1aa555..9ee990e 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java
@@ -12,6 +12,7 @@
import com.hdl.sdk.connect.callback.HDLLinkCallBack;
import com.hdl.sdk.connect.callback.HDLLinkResponseCallBack;
import com.hdl.sdk.connect.cloud.CallBackListener;
+import com.hdl.sdk.connect.cloud.CheckAppVersionListener;
import com.hdl.sdk.connect.cloud.HdlCloudApi;
import com.hdl.sdk.connect.cloud.HdlCloudController;
import com.hdl.sdk.connect.cloud.interceptor.EncryptInterceptor;
@@ -181,6 +182,34 @@
}
/**
+ * 妫�娴嬫洿鏂�
+ *
+ * @param appKey appKey
+ * @param appSecret appSecret
+ * @param versionCode 褰撳墠鐗堟湰
+ * @param appCode appCode
+ * @param listener 缁撴灉鍥炶皟
+ */
+ public void checkAppVersion(Context context, String appKey, String appSecret, String versionCode, String appCode, CheckAppVersionListener listener) {
+ LogUtils.i("妫�娴嬫洿鏂�");
+ HxHttpConfig.getInstance().init(context, HdlCloudApi.BASE_CHINA_URL)
+ .addInterceptor(
+ new EncryptInterceptor(),
+ new SmartHeaderInterceptor());
+ this.appKey = appKey;
+ this.appSecret = appSecret;
+
+ HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor();
+ httpLoggingInterceptor.level(HttpLoggingInterceptor.Level.BODY);
+
+ HxHttpConfig.getInstance()
+ //.addInterceptor(new HttpCacheInterceptor())
+ .addInterceptor(httpLoggingInterceptor).ignoreSSL();
+
+ HdlCloudController.checkAppVersion(versionCode, appCode, listener);
+ }
+
+ /**
* 閫氱煡鍒犻櫎骞堕��缃戝瓙璁惧
*
* @param oid 浠庣綉鍏筹紙璁惧锛塷id
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/response/UpdateInfo.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/response/UpdateInfo.java
new file mode 100644
index 0000000..1e94436
--- /dev/null
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/response/UpdateInfo.java
@@ -0,0 +1,90 @@
+package com.hdl.sdk.connect.bean.response;
+
+import java.io.Serializable;
+
+/**
+ * Created by panlili on 2023/8/30.
+ */
+public class UpdateInfo implements Serializable {
+
+ private String version;
+ private String appName;
+ private String appCode;
+ //鏄惁寮哄埗鏇存柊
+ private Boolean isEnforce;
+ //绫诲瀷
+ private String releaseSystem;
+ //鏂板寘涓嬭浇璺緞
+ private String packageUrl;
+ //鏇存柊璇存槑
+ private String remark;
+
+ public String getVersion() {
+ return version;
+ }
+
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ public String getAppName() {
+ return appName;
+ }
+
+ public void setAppName(String appName) {
+ this.appName = appName;
+ }
+
+ public String getAppCode() {
+ return appCode;
+ }
+
+ public void setAppCode(String appCode) {
+ this.appCode = appCode;
+ }
+
+ public Boolean getIsEnforce() {
+ return isEnforce;
+ }
+
+ public void setIsEnforce(Boolean isEnforce) {
+ this.isEnforce = isEnforce;
+ }
+
+ public String getReleaseSystem() {
+ return releaseSystem;
+ }
+
+ public void setReleaseSystem(String releaseSystem) {
+ this.releaseSystem = releaseSystem;
+ }
+
+ public String getPackageUrl() {
+ return packageUrl;
+ }
+
+ public void setPackageUrl(String packageUrl) {
+ this.packageUrl = packageUrl;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ @Override
+ public String toString() {
+ return "UpdateInfo{" +
+ "version='" + version + '\'' +
+ ", appName='" + appName + '\'' +
+ ", appCode='" + appCode + '\'' +
+ ", isEnforce=" + isEnforce +
+ ", releaseSystem='" + releaseSystem + '\'' +
+ ", packageUrl='" + packageUrl + '\'' +
+ ", remark='" + remark + '\'' +
+ '}';
+ }
+}
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/cloud/CheckAppVersionListener.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/cloud/CheckAppVersionListener.java
new file mode 100644
index 0000000..7841ca8
--- /dev/null
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/cloud/CheckAppVersionListener.java
@@ -0,0 +1,11 @@
+package com.hdl.sdk.connect.cloud;
+
+
+import com.hdl.sdk.connect.bean.response.UpdateInfo;
+
+/**
+ * Created by panlili on 2023/8/30.
+ */
+public interface CheckAppVersionListener extends BaseCallBack {
+ void onSuccess(UpdateInfo info);
+}
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/cloud/HdlCloudApi.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/cloud/HdlCloudApi.java
index fba726a..5f6256b 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/cloud/HdlCloudApi.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/cloud/HdlCloudApi.java
@@ -15,4 +15,7 @@
//鐢宠璁惧瀵嗛挜(鏍规嵁璁惧MAC)
public static final String APPLY_DEVICE_SECRET = "/smart-open/third/device/authByMac";
+ //妫�鏌pp鏄惁鏇存柊
+ public static final String CHECK_APP_VERSION_URL = "/basis-footstone/app/appVersion/check";
+
}
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/cloud/HdlCloudController.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/cloud/HdlCloudController.java
index e7dff9c..8f05dcf 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/cloud/HdlCloudController.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/cloud/HdlCloudController.java
@@ -1,6 +1,7 @@
package com.hdl.sdk.connect.cloud;
import com.hdl.hdlhttp.HxHttp;
+import com.hdl.sdk.connect.bean.response.UpdateInfo;
import io.reactivex.rxjava3.disposables.Disposable;
@@ -35,4 +36,30 @@
});
}
+ /**
+ * 妫�鏌pp鏄惁鏇存柊
+ *
+ * @return
+ */
+ public static Disposable checkAppVersion(String versionCode, String appCode, CheckAppVersionListener listener) {
+ return HxHttp.builder()
+ .url(HdlCloudApi.BASE_CHINA_URL + HdlCloudApi.CHECK_APP_VERSION_URL)
+ .params("version", versionCode)
+ .params("appCode", appCode)
+ .params("releaseSystem", "Android")
+ .build()
+ .post()
+ .subscribeWith(new HDLResponse<UpdateInfo>() {
+ @Override
+ public void onResponse(UpdateInfo response) {
+ listener.onSuccess(response);
+ }
+
+ @Override
+ public void onFailure(HDLException e) {
+ listener.onError(e);
+ }
+ });
+ }
+
}
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java
index 7b8c005..5ccf25d 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java
@@ -19,6 +19,7 @@
private static final String AUTHENTICATE_GATEWAYID_KEY = "auth_gatewayid_key";
private static final String AUTHENTICATE_IPADDRESS_KEY = "auth_ipaddress_key";
private static final String AUTHENTICATE_IS_LS_KEY = "auth_isls_key";
+ public static final String AUTHENTICATE_IS_DEVICEINFO_KEY = "auth_deviceinfo_key";
private String localSecret;//鏈湴鍔犲瘑瀵嗛挜
private String gatewayId;
@@ -187,11 +188,13 @@
}
public AuthenticateRequest.AuthenticateDeviceInfoBean getDeviceInfoBean() {
- return deviceInfoBean;
+ AuthenticateRequest.AuthenticateDeviceInfoBean infoBean = (AuthenticateRequest.AuthenticateDeviceInfoBean) SPUtils.getSerializableEntity(AUTHENTICATE_IS_DEVICEINFO_KEY);
+ return infoBean;
}
public void setDeviceInfoBean(AuthenticateRequest.AuthenticateDeviceInfoBean deviceInfoBean) {
this.deviceInfoBean = deviceInfoBean;
+ SPUtils.saveSerializableEntity(AUTHENTICATE_IS_DEVICEINFO_KEY, deviceInfoBean);
}
public AuthenticateRequest.RequestBean getRequestBean() {
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java
index c2a71fb..b82dcef 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java
@@ -1,5 +1,7 @@
package com.hdl.sdk.connect.socket;
+import static com.hdl.sdk.connect.config.HDLLinkConfig.AUTHENTICATE_IS_DEVICEINFO_KEY;
+
import android.os.Build;
import android.text.TextUtils;
import android.util.Log;
@@ -130,6 +132,10 @@
if (!TextUtils.isEmpty(data)) {
DeviceInfoResponse response = GsonConvert.getGson().fromJson(data, new TypeToken<DeviceInfoResponse>() {
}.getType());
+
+ if ((response == null) || (response.getObjects() == null) || (response.getObjects().getIPAddress() == null))
+ return;
+
HDLLinkConfig.getInstance().setIpAddress(response.getObjects().getIPAddress());
LogUtils.i("---getIpAddress=" + HDLLinkConfig.getInstance().getIpAddress());
diff --git a/HDLSDK/settings.gradle b/HDLSDK/settings.gradle
index 147d5db..b974e52 100644
--- a/HDLSDK/settings.gradle
+++ b/HDLSDK/settings.gradle
@@ -1,5 +1,5 @@
-//include ':app'
+include ':app'
//include ':hdl-socket'
include ':hdl-connect'
//include ':hdl-common'
--
Gitblit v1.8.0