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