阿里Iot设备端javaSDK批量向云端推送属性

本文介绍了如何使用阿里云IoT的Java SDK在设备端批量推送多个属性到云端。通过创建`UploadMultipleProperties`类,实现了从设备获取属性并将其转换为适合云端的格式,然后通过`thingPropertyPost`方法进行上报。代码示例展示了如何处理各种数据类型的属性,并提供错误检查和日志记录。
摘要由CSDN通过智能技术生成

项目实际需求是要将设备所有属性推送到云端,简单写了个类,代码如下:

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 &#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值