项目实际需求是要将设备所有属性推送到云端,简单写了个类,代码如下:
package com.aliyun.alink.devicesdk.demo;
import com.aliyun.alink.apiclient.utils.StringUtils;
import com.aliyun.alink.linkkit.api.LinkKit;
import com.aliyun.alink.linksdk.tmp.device.payload.ValueWrapper;
import com.aliyun.alink.linksdk.tmp.devicemodel.Property;
import com.aliyun.alink.linksdk.tmp.listener.IPublishResourceListener;
import com.aliyun.alink.linksdk.tmp.utils.GsonUtils;
import com.aliyun.alink.linksdk.tmp.utils.TmpConstant;
import com.aliyun.alink.linksdk.tools.AError;
import com.aliyun.alink.linksdk.tools.ALog;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
public class UploadMultipleProperties extends BaseSample {
private static final String TAG = "UploadMultipleProperties";
private final static int DEF_VALUE = Integer.MIN_VALUE;
final static Pattern pattern = Pattern.compile("^[-\\+]?[.\\d]*$");
Map<String, ValueWrapper> reportData = new HashMap<String, ValueWrapper>();
public UploadMultipleProperties(String pk, String dn) {
super(pk, dn);
}
public void reportProperty(){
LinkKit.getInstance().getDeviceThing().thingPropertyPost(reportData, new IPublishResourceListener() {
public void onSuccess(String s, Object o) {
// 属性上报成功
ALog.d(TAG, "上报成功 onSuccess() called with: s = [" + s + "], o = [" + o + "]");
}
public void onError(String s, AError aError) {
// 属性上报失败
ALog.d(TAG, "上报失败onError() called with: s = [" + s + "], aError = [" + getError(aError) + "]");
}
});
}
public void getPost(String identity, String value) {
try {
if (StringUtils.isEmptyString(identity)) {
ALog.w(TAG, "属性错误");
return;
}
List<Property> propertyList &#