TuyaInc / tuyasmart_android_sdk

33 stars 24 forks source link

mTuyaTimerManager.updateTimerStatus()接口传值错误。 #3

Closed zhoujia456888 closed 7 years ago

zhoujia456888 commented 7 years ago

SDK版本1.5.9 官方文档中updateTimerStatus()传入第一个参数是taskName,我也照做了。但是之后再查询定时的时候发现taskName跑到了dpid那个位置。 更新定时之前 image

更新定时之后 image

我ctrl+鼠标左键跟踪SDK中的代码,发现SDK中taskName被放在了dpid的位置。。。 image image image

zhoujia456888 commented 7 years ago

另外还有一点,我在addTimerWithTask()添加定时的时候dps传值{"1",true} 。调用getTimerWithTask()和getAllTimerWithDeviceId()方法的时候,都只获取到了dpId=1。并没有获取到完整的dps里面的值。请问该如何获取完整的dps={"1",true}? image

taoyuanxiaoqi commented 7 years ago

@zhoujia456888 您好 感谢您的反馈 1.第一个问题我们会在下个版本修复掉,并加入接口测试用例 2.第二个问题,目前对外封装的接口是偏业务化的Timer类,如您所见,可以通过Timer类获取到dpId/通过isOpen接口获取执行的命令的开关,并没有完整的dps。目前您可以通过这两个状态重组一下。

请问您现在是什么样的需求导致上层需要dps的原始字符串,我们会根据您的需要探讨一下接口的优化。

zhoujia456888 commented 7 years ago

第二个问题需求是这样的:我在设定定时的时候,希望在9点钟开关关闭。所以在addTimerWithTask()时我传入的值是这样的 ("task01", "00200359600194218e99", "1111111", {"1",false}, "9:00", new IResultStatusCallback() ); 软件界面是这样 image 注意箭头所指的地方 而当我需要对这条定时进行修改时,我希望进入的时候展现给我的界面依然是这个样子,这就需要获取到三条数据:设定的定时时间time=9:00,设定的重复周期loops=1111111以及设定的开关状态dps={"1",false}。time和loops在接口getTimerWithTask()中已经有了。isOpen获取到的是这条定时器是否打开而并非我设定的开关状态。

taoyuanxiaoqi commented 7 years ago

@zhoujia456888 您好 可以试一下 Timer 的 getValue() 函数