From 4a42989853dd83c0519d0684383430006b7e9625 Mon Sep 17 00:00:00 2001 From: panlili2024 <14743743+panlili2024@user.noreply.gitee.com> Date: 星期二, 26 八月 2025 17:59:50 +0800 Subject: [PATCH] 获取设备列表序列化 --- HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/callback/HDLLinkTCallBack.java | 10 + HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java | 93 ++++++++++ HDLSDK/app/src/main/java/com/hdl/hdlsdk/App.java | 10 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/utils/LinkResponseUtils.java | 44 ++++ HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/AttributesInfo.java | 73 ++++++++ HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/AllTopicManagerUtils.java | 2 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/StatusInfo.java | 39 ++++ HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/LinkFunctionInfo.java | 146 ++++++++++++++++ HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java | 71 +++---- 9 files changed, 441 insertions(+), 47 deletions(-) diff --git a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/App.java b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/App.java index 9fe4abf..7a9cbee 100644 --- a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/App.java +++ b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/App.java @@ -19,18 +19,18 @@ public void onCreate() { super.onCreate(); //鍒濆鍖朣DK锛屽鏋滀笉璧颁粠鏈哄叆缃戯紝璧癮pp闇�瑕佽缃鍙d负8584 - HDLSdk.getInstance().init(this, 8584); +// HDLSdk.getInstance().init(this, 8584); //濡傛灉璧颁粠鏈哄叆缃戯紝涓嶉渶瑕佽缃鍙� - //HDLSdk.getInstance().init(this); + HDLSdk.getInstance().init(this); //鎺у埗SDK鏃ュ織鎵撳嵃 HDLSdk.getInstance().setLogEnabled(true); //source绯荤粺鎺ュ彛鍒濆鍖� OsManager.init(this); - //appkey:ryfElI3tVOT - //appsecret:AKIn7s1A2YnNvAZRtL8FQxzp0R2KUpIY - HDLLink.getInstance().initCloud(this, "Lstzip08fTl", "iSIr5TSz1Rzxc1QRQ3RgnGwGB2SeAAAA", HdlCloudApi.BASE_CHINA_URL); + //appkey:ryfElI3tVOT Lstzip08fTl + //appsecret:AKIn7s1A2YnNvAZRtL8FQxzp0R2KUpIY iSIr5TSz1Rzxc1QRQ3RgnGwGB2SeAAAA + HDLLink.getInstance().initCloud(this, "FcRyUJlLJFF", "wz8wn75ABidx8vXcFGUotqhwFkTaYvvJ", HdlCloudApi.BASE_TEST_URL); //娉ㄥ唽鍏ㄥ眬骞挎挱,鍒锋柊token GlobalBroadcastManager.registerGlobalBroadcast(this); 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 e76c21e..982ef41 100644 --- a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java +++ b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java @@ -38,6 +38,7 @@ import com.hdl.sdk.common.utils.SPUtils; import com.hdl.sdk.common.utils.gson.GsonConvert; import com.hdl.sdk.connect.HDLLink; +import com.hdl.sdk.connect.bean.LinkFunctionInfo; import com.hdl.sdk.connect.bean.LinkResponse; import com.hdl.sdk.connect.bean.request.AttributesRequest; import com.hdl.sdk.connect.bean.request.AuthenticateRequest; @@ -50,6 +51,7 @@ 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.callback.HDLLinkTCallBack; import com.hdl.sdk.connect.cloud.CallBackListener; import com.hdl.sdk.connect.cloud.CheckAppVersionListener; import com.hdl.sdk.connect.cloud.HDLException; @@ -81,8 +83,8 @@ private EventListener allTopicsListener; private String testLightSid = "020101A19B485D02020100010101"; private String secret = ""; - private List<FunctionBean> devicesList = new ArrayList<>(); - private List<FunctionBean> roomDevicesList = new ArrayList<>(); + private List<LinkFunctionInfo> devicesList = new ArrayList<>(); + private List<LinkFunctionInfo> roomDevicesList = new ArrayList<>(); private List<SceneBean> sceneList = new ArrayList<>(); private List<SceneDetailBean> sceneDetailList = new ArrayList<>(); private List<SceneDetailBean> roomSceneList = new ArrayList<>(); @@ -92,8 +94,8 @@ tv.setText("寮�濮嬬敵璇疯澶囧瘑閽�..."); responseTv.setText(""); - String supplier = "HIK KNX";//鍘傚晢 - String mac = "FQ4895630";//璁惧鍞竴MAC鍦板潃 + String supplier = "JINMAOYUN";//鍘傚晢 + String mac = "f2c5d8bad48f";//璁惧鍞竴MAC鍦板潃 // String mac = editText.getText().toString(); String spk = "screen.touch";//浜у搧spk @@ -228,7 +230,7 @@ selectnetwork(); checkIfCertified(); - //initDeviceInfo();//涓嶈蛋浠庢満鍏ョ綉鐨勬柟寮忎笉闇�瑕佸垵濮嬪寲 + initDeviceInfo();//涓嶈蛋浠庢満鍏ョ綉鐨勬柟寮忎笉闇�瑕佸垵濮嬪寲锛岃蛋浠庢満鍏ョ綉鍒欓渶瑕佸垵濮嬪寲 registerAllTopicsListener(); HDLLink.getInstance().setDeleteNetworkListener(new DeleteNetworkListener() { @Override @@ -411,11 +413,12 @@ LinkResponse response = (LinkResponse) msg; Log.i("onMessage", "response.getTopic():" + response.getTopic()); String topic = String.format(TopicConstant.GATEWAY_LOGIN, - HDLLinkConfig.getInstance().getGatewayId())+ "_reply";; + HDLLinkConfig.getInstance().getGatewayId()) + "_reply"; + ; if ("/user/all/custom/gateway/broadcast_reply".equals(response.getTopic())) { localSecret.setText("瀵嗛挜锛�" + HDLLinkConfig.getInstance().getLocalSecret()); - }else if (topic.equals(response.getTopic())){ + } else if (topic.equals(response.getTopic())) { //tcp杩炴帴鎴愬姛锛屽鐞嗕笟鍔¢�昏緫 } } @@ -473,8 +476,8 @@ infoBean.setDeviceName("榄旈暅");//璁惧鍚嶅瓧 infoBean.setDeviceModel("HDLSDK");//璁惧鍨嬪彿 infoBean.setAccessMode("WIFI"); - infoBean.setIPGateway("192.168.31.1"); - infoBean.setIPAddress("192.168.31.103"); + infoBean.setIPGateway("192.168.1.1"); + infoBean.setIPAddress("192.168.1.103"); infoBean.setGateway_type("screen.touch"); infoBean.setHw_version("HW2.0"); infoBean.setFw_version("Fw1.0"); @@ -507,7 +510,7 @@ //璁よ瘉鎻愪氦鍙傛暟鍑嗗 //姝e紡鏈嶅姟鍣� - String spkStr = "screen.mirror";//浜у搧spk + String spkStr = "screen.touch";//浜у搧spk String macStr = "f2c5d8bad48f";//璁惧鍞竴MAC鍦板潃 String mac_key = stringToMD5(stringToMD5(macStr + secret)); @@ -596,37 +599,23 @@ void getFunctionList() { tv.setText("鑾峰彇璁惧鍒楄〃涓�..."); responseTv.setText(""); - HDLLink.getInstance().getFunctionList(new HDLLinkCallBack() { + HDLLink.getInstance().getFunctionInfoList(new HDLLinkTCallBack<List<LinkFunctionInfo>>() { + @Override + public void onSuccess(List<LinkFunctionInfo> data) { + if (data != null && data.size() != 0) { + devicesList.clear(); + devicesList.addAll(data); + + tv.setText("鑾峰彇璁惧鍒楄〃鎴愬姛"); + responseTv.setText(data.toString()); + } + } + @Override public void onError(HDLLinkException error) { tv.setText(error.getMsg()); } - - @Override - public void onSuccess(String data) { - tv.setText("鑾峰彇璁惧鍒楄〃鎴愬姛"); - responseTv.setText(data); - - handelFunctionList(data); - } }); - } - - void handelFunctionList(String data) { - try { - final LinkResponse linkResponse = GsonConvert.getGson().fromJson(data, new TypeToken<LinkResponse>() { - }.getType()); - - final BaseLocalResponse<List<FunctionBean>> bean = GsonConvert.getGson().fromJson(linkResponse.getData(), new TypeToken<BaseLocalResponse<List<FunctionBean>>>() { - }.getType()); - devicesList.clear(); - devicesList.addAll(bean.getObjects()); - - Log.d(TAG, "handelFunList-----> " + devicesList.toString()); - } catch (Exception e) { - Log.e(TAG, "handelFunList: " + e.getMessage()); - } - } /** @@ -643,10 +632,12 @@ sids.add(testLightSid); } - HDLLink.getInstance().getFunctionAttribute(sids, new HDLLinkCallBack() { + HDLLink.getInstance().getFunctionAttributeInfo(sids, new HDLLinkTCallBack<List<LinkFunctionInfo>>() { @Override - public void onSuccess(String msg) { - responseTv.setText(msg); + public void onSuccess(List<LinkFunctionInfo> data) { + if (data != null && data.size() != 0) { + responseTv.setText(data.toString()); + } } @Override @@ -707,7 +698,7 @@ request.setStatus(statusBeanList); requestList.add(request); - HDLLink.getInstance().propertyDown(requestList, new HDLLinkCallBack() { + HDLLink.getInstance().propertyDownDevice(requestList, new HDLLinkTCallBack<String>() { @Override public void onSuccess(String data) { responseTv.setText(data); diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/AllTopicManagerUtils.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/AllTopicManagerUtils.java index e650391..89eedec 100644 --- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/AllTopicManagerUtils.java +++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/AllTopicManagerUtils.java @@ -45,7 +45,7 @@ } String mac_Oid_GatewayId = topics[2]; - Log.d("panlili", "AllTopicManagerUtils.java:manager----->topic= " + topic); + //Log.d("panlili", "AllTopicManagerUtils.java:manager----->topic= " + topic); if (!isLocalDevice(mac_Oid_GatewayId)) { LogUtils.i("涓嶆槸褰撳墠璁惧鐨勭綉鍏矷d锛孖d鏄�" + mac_Oid_GatewayId); 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 2dd79d1..78b7d0f 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 @@ -2,20 +2,26 @@ import android.content.Context; +import com.google.gson.reflect.TypeToken; import com.hdl.hdlhttp.HxHttpConfig; import com.hdl.sdk.common.event.DeleteNetworkListener; import com.hdl.sdk.common.event.EventDispatcher; import com.hdl.sdk.common.event.EventListener; +import com.hdl.sdk.common.exception.HDLLinkException; import com.hdl.sdk.common.utils.LogUtils; +import com.hdl.sdk.common.utils.gson.GsonConvert; +import com.hdl.sdk.connect.bean.LinkFunctionInfo; +import com.hdl.sdk.connect.bean.LinkResponse; import com.hdl.sdk.connect.bean.request.AuthenticateRequest; import com.hdl.sdk.connect.bean.request.DeviceControlRequest; import com.hdl.sdk.connect.bean.request.ListSidRequest; import com.hdl.sdk.connect.bean.request.ListUploadRequest; +import com.hdl.sdk.connect.bean.response.BaseLocalResponse; import com.hdl.sdk.connect.callback.HDLLinkCallBack; import com.hdl.sdk.connect.callback.HDLLinkResponseCallBack; +import com.hdl.sdk.connect.callback.HDLLinkTCallBack; 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.listener.GatewayListener; import com.hdl.sdk.connect.cloud.listener.SibichiListener; @@ -265,6 +271,33 @@ } /** + * 鑾峰彇璁惧鍒楄〃 + */ + public void getFunctionInfoList(HDLLinkTCallBack<List<LinkFunctionInfo>> callBack) { + getFunctionList(new HDLLinkCallBack() { + @Override + public void onSuccess(String msg) { + LinkResponse linkResponse = GsonConvert.getGson().fromJson(msg, new TypeToken<LinkResponse>() { + }.getType()); + + final BaseLocalResponse<List<LinkFunctionInfo>> listBaseLocalResponse = GsonConvert.getGson().fromJson(linkResponse.getData(), new TypeToken<BaseLocalResponse<List<LinkFunctionInfo>>>() { + }.getType()); + if (callBack != null) { + callBack.onSuccess(listBaseLocalResponse.getObjects()); + } + + } + + @Override + public void onError(HDLLinkException e) { + if (callBack != null) { + callBack.onError(e); + } + } + }); + } + + /** * 鑾峰彇璁惧鍔熻兘灞炴�� * * @param sids @@ -275,6 +308,35 @@ } /** + * 鑾峰彇璁惧鍔熻兘灞炴�� + * + * @param sids + * @param callBack + */ + public void getFunctionAttributeInfo(List<String> sids, HDLLinkTCallBack<List<LinkFunctionInfo>> callBack) { + getFunctionAttribute(sids, new HDLLinkCallBack() { + @Override + public void onSuccess(String msg) { + LinkResponse linkResponse = GsonConvert.getGson().fromJson(msg, new TypeToken<LinkResponse>() { + }.getType()); + + final BaseLocalResponse<List<LinkFunctionInfo>> listBaseLocalResponse = GsonConvert.getGson().fromJson(linkResponse.getData(), new TypeToken<BaseLocalResponse<List<LinkFunctionInfo>>>() { + }.getType()); + if (callBack != null) { + callBack.onSuccess(listBaseLocalResponse.getObjects()); + } + } + + @Override + public void onError(HDLLinkException e) { + if (callBack != null) { + callBack.onError(e); + } + } + }); + } + + /** * 璁惧鎺у埗 * * @param request 鎺у埗鐘舵�佸弬鏁� @@ -285,6 +347,35 @@ } /** + * 璁惧鎺у埗 + * + * @param request 鎺у埗鐘舵�佸弬鏁� + * @param callBack 缁撴灉鍥炶皟 + */ + public void propertyDownDevice(List<DeviceControlRequest> request, HDLLinkTCallBack<String> callBack) { + propertyDown(request, new HDLLinkCallBack() { + @Override + public void onSuccess(String msg) { + LinkResponse linkResponse = GsonConvert.getGson().fromJson(msg, new TypeToken<LinkResponse>() { + }.getType()); + + final BaseLocalResponse<String> listBaseLocalResponse = GsonConvert.getGson().fromJson(linkResponse.getData(), new TypeToken<BaseLocalResponse<String>>() { + }.getType()); + if (callBack != null) { + callBack.onSuccess(listBaseLocalResponse.getObjects()); + } + } + + @Override + public void onError(HDLLinkException e) { + if (callBack != null) { + callBack.onError(e); + } + } + }); + } + + /** * 璇诲彇鐘舵�� * * @param sids 璇锋眰鍙傛暟 鎸囧畾璇诲彇鐨勮澶噑id鍒楄〃 diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/AttributesInfo.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/AttributesInfo.java new file mode 100644 index 0000000..4c20b0b --- /dev/null +++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/AttributesInfo.java @@ -0,0 +1,73 @@ +package com.hdl.sdk.connect.bean; + +import androidx.annotation.NonNull; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +public class AttributesInfo implements Serializable { + + private String key; + private String data_type; + private List<String> value = new ArrayList<>(); + private String max; + private String min; + + + public List<String> getValue() { + if (value == null) { + return new ArrayList<>(); + } + return value; + } + + public void setValue(@NonNull List<String> value) { + this.value = value; + } + + public String getMax() { + return max == null ? "" : max; + } + + public void setMax(String max) { + this.max = max; + } + + public String getMin() { + return min == null ? "" : min; + } + + public void setMin(String min) { + this.min = min; + } + + @NonNull + public String getKey() { + return key == null ? "" : key; + } + + public void setKey(@NonNull String key) { + this.key = key; + } + + @NonNull + public String getData_type() { + return data_type == null ? "" : data_type; + } + + public void setData_type(@NonNull String data_type) { + this.data_type = data_type; + } + + @Override + public String toString() { + return "AttributesInfo{" + + "key='" + key + '\'' + + ", data_type='" + data_type + '\'' + + ", value=" + value + + ", max='" + max + '\'' + + ", min='" + min + '\'' + + '}'; + } +} diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/LinkFunctionInfo.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/LinkFunctionInfo.java new file mode 100644 index 0000000..13555a2 --- /dev/null +++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/LinkFunctionInfo.java @@ -0,0 +1,146 @@ +package com.hdl.sdk.connect.bean; + +import androidx.annotation.NonNull; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +public class LinkFunctionInfo implements Serializable { + private String sid;//鍔熻兘鐨剆id + private String oid;//妯″潡鐨刼id + private String name;//鍔熻兘鍥炶矾鍚嶅瓧 + private String spk;//spk + private String omodel; + private String src; + private String online; + private List<AttributesInfo> attributes = new ArrayList<>();//鍔熻兘灞炴�э紝闇�瑕佸崟鐙彂閫佸姛鑳藉睘鎬ц鍙栫殑鎸囦护璇诲洖鏉� + private List<StatusInfo> status = new ArrayList<>();//褰撳墠璁惧鐘舵�佸�硷紝璁惧鎺у埗鐨勬椂鍊欐墠鐢ㄥ埌 + + private boolean templateFlag = false;//妯℃澘鏍囪 + + /** + * 1:灞曠ず 2:涓嶅睍绀� + */ + private String show; + + public String getShow() { + return show == null ? "1" : show; + } + + public void setShow(@NonNull String show) { + this.show = show; + } + + + public boolean isTemplateFlag() { + return templateFlag; + } + + public void setTemplateFlag(boolean templateFlag) { + this.templateFlag = templateFlag; + } + + + @NonNull + public String getSid() { + return sid == null ? "" : sid; + } + + public void setSid(@NonNull String sid) { + this.sid = sid; + } + + @NonNull + public String getOid() { + return oid == null ? "" : oid; + } + + public void setOid(@NonNull String oid) { + this.oid = oid; + } + + @NonNull + public String getName() { + return name == null ? "" : name; + } + + public void setName(@NonNull String name) { + this.name = name; + } + + @NonNull + public String getSpk() { + return spk == null ? "" : spk; + } + + public void setSpk(@NonNull String spk) { + this.spk = spk; + } + + @NonNull + public String getOmodel() { + return omodel == null ? "" : omodel; + } + + public void setOmodel(@NonNull String omodel) { + this.omodel = omodel; + } + + @NonNull + public String getSrc() { + return src == null ? "" : src; + } + + public void setSrc(@NonNull String src) { + this.src = src; + } + + @NonNull + public String getOnline() { + return online == null ? "" : online; + } + + public void setOnline(@NonNull String online) { + this.online = online; + } + + public List<AttributesInfo> getAttributes() { + if (attributes == null) { + return new ArrayList<>(); + } + return attributes; + } + + public void setAttributes(List<AttributesInfo> attributes) { + this.attributes = attributes; + } + + public List<StatusInfo> getStatus() { + if (status == null) { + return new ArrayList<>(); + } + return status; + } + + public void setStatus(List<StatusInfo> status) { + this.status = status; + } + + @Override + public String toString() { + return "LinkFunctionInfo{" + + "sid='" + sid + '\'' + + ", oid='" + oid + '\'' + + ", name='" + name + '\'' + + ", spk='" + spk + '\'' + + ", omodel='" + omodel + '\'' + + ", src='" + src + '\'' + + ", online='" + online + '\'' + + ", attributes=" + attributes + + ", status=" + status + + ", templateFlag=" + templateFlag + + ", show='" + show + '\'' + + '}'; + } +} diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/StatusInfo.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/StatusInfo.java new file mode 100644 index 0000000..1898576 --- /dev/null +++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/StatusInfo.java @@ -0,0 +1,39 @@ + +package com.hdl.sdk.connect.bean; + +import androidx.annotation.NonNull; + +import java.io.Serializable; + + +public class StatusInfo implements Serializable { + + private String key; + private String value; + + @NonNull + public String getKey() { + return key == null ? "" : key; + } + + public void setKey(@NonNull String key) { + this.key = key; + } + + @NonNull + public String getValue() { + return value == null ? "" : value; + } + + public void setValue(@NonNull String value) { + this.value = value; + } + + @Override + public String toString() { + return "StatusInfo{" + + "key='" + key + '\'' + + ", value='" + value + '\'' + + '}'; + } +} diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/callback/HDLLinkTCallBack.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/callback/HDLLinkTCallBack.java new file mode 100644 index 0000000..d8a772d --- /dev/null +++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/callback/HDLLinkTCallBack.java @@ -0,0 +1,10 @@ +package com.hdl.sdk.connect.callback; + +/** + * 鏈湴閫氫俊閫氱敤CallBack + */ +public interface HDLLinkTCallBack<T> extends BaseCallBack{ + + void onSuccess(T data); + +} diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/utils/LinkResponseUtils.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/utils/LinkResponseUtils.java new file mode 100644 index 0000000..5a3c1ee --- /dev/null +++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/utils/LinkResponseUtils.java @@ -0,0 +1,44 @@ +package com.hdl.sdk.connect.utils; + +import android.text.TextUtils; + +import com.google.gson.reflect.TypeToken; +import com.hdl.sdk.common.utils.LogUtils; +import com.hdl.sdk.common.utils.gson.GsonConvert; +import com.hdl.sdk.connect.bean.LinkResponse; +import com.hdl.sdk.connect.bean.response.BaseLocalResponse; + +import java.lang.reflect.Type; + +public class LinkResponseUtils<T> { + + public Type getType() { + return new TypeToken<BaseLocalResponse<T>>() { + }.getType(); + } + + /** + * 杞崲鎻愬彇LinkResponse閲岄潰鐨刼bjects + * + * @param msg + * @return + */ + public static <T> T convertLinkResponse(Object msg, Type type) { + T bean = null; + if (msg != null && msg instanceof LinkResponse) { + LinkResponse linkResponse = (LinkResponse) msg; + String data = linkResponse.getData(); + if (!TextUtils.isEmpty(data)) { + try { + final BaseLocalResponse<T> response = GsonConvert.getGson().fromJson(data, type); + if (response != null) { + bean = response.getObjects(); + } + } catch (Exception e) { + LogUtils.e("convertLinkResponse catch:" + e.getMessage()); + } + } + } + return bean; + } +} -- Gitblit v1.8.0