云闹钟

优质
小牛编辑
125浏览
2023-12-01

闹钟 Alarm

获取闹钟列表

请求获取设备上的闹钟列表:

Java:

RokidMobileSDK.skill.cloudAlarm().getList(deviceId, new SDKGetAlarmListCallback {
    @override 
    public void onSucceed(List<SDKAlarm> alarmList) {
        //...
    }

    @override 
    public void onFailed(String errorCode, String errorMessage) {
        //...
    }
})

Kotlin:

RokidMobileSDK.skill.cloudAlarm().getList(skill_alarm_device_id.selectedItem.toString(), 
    object : SDKGetAlarmListCallback {
         override fun onSucceed(alarmList: MutableList<SDKAlarm>?) {
            // ...
         }

         override fun onFailed(errorCode: String?, errorMessage: String?) {
            // ...
         }
     })

SDKAlarm 字段说明:

参数类型必要?说明
idint闹钟Id
yearint
monthint
dayint
hourint小时
minuteint分钟
repeatTypeString重复模式
repeatTextString重复模式的文案
extMap扩展字段,根据自己业务进行扩展
注:目前只有Lua版Linux系统支持该字段 ext字段是手机App与系统通信特有的字段,添加或修改时传入,获取列表时原样返回,以下划线_开始的key是预定义key。 ext字段可以为空;因为暂时没有删除字段的接口,所以修改时(SpecificTime)需要传入所有的key和value。 系统不支持时间完全相同的闹钟,所以更新和删除时不会校验ext是否匹配。
名称类型描述
_ringtonestring闹钟铃声地址,会覆盖全局的闹钟主题
第三方需求可以由他们自定义字段,比如小雅小雅的标签需求

添加闹钟

添加一个闹钟。

Java:

SDKAlarm alarm = SDKAlarm.builder()
        .year(2018)
        .month(3)
        .day(3)
        .hour(14)
        .minute(30)
        .repeatType(SDKRepeatType.EVERY_MONDAY)
        .build();

RokidMobileSDK.skill.cloudAlarm().add(deviceId, alarm, new SDKOperateAlarmCallback {
    @override 
    public void onSucceed() {
        //...
    }

    @override 
    public void onFailed(String errorCode, String errorMessage) {
        //...
    }
})

Kotlin:

val sdkAlarm = SDKAlarm().apply {
      year = 2018
      month = 3
      day = 3
      hour = 14
      minute = 30
      repeatType = SDKRepeatType.EVERY_MONDAY
  }

RokidMobileSDK.skill.cloudAlarm().add(deviceId!!, sdkAlarm, object :SDKOperateAlarmCallback{
    override fun onSucceed() {
        // ...
    }

    override fun onFailed(errorCode: String?, errorMessage: String?) {
        // ...
    }
})

SDKRepeatType 解释:

SDKRepeatType.ONCE // 仅此一次
SDKRepeatType.EVERYDAY // 每天
SDKRepeatType.WEEKDAY // 工作日
SDKRepeatType.WEEKEND // 每周末
SDKRepeatType.EVERY_MONDAY // 每周一
SDKRepeatType.EVERY_TUESDAY // 每周二
SDKRepeatType.EVERY_WEDNESDAY // 每周三
SDKRepeatType.EVERY_THURSDAY // 每周四
SDKRepeatType.EVERY_FRIDAY // 每周五
SDKRepeatType.EVERY_SATURDAY // 每周六
SDKRepeatType.EVERY_SUNDAY // 每周日

删除一个闹钟

删除一个闹钟:

Java:

RokidMobileSDK.skill.cloudAlarm().delete(deviceId, alarm, new SDKOperateAlarmCallback() {
    @Override
    public void onSucceed() {
        // TODO
    }

    @Override
    public void onFailed(String errorCode, String errorMessage) {
        // TODO
    }

});

Kotlin:

RokidMobileSDK.skill.cloudAlarm().delete(deviceId, alarm, object : SDKOperateAlarmCallback {
    override fun onSucceed() {
        // TODO
    }

    override fun onFailed(errorCode: String?, errorMessage: String?) {
     // TODO
    }

})

注:字段说明 请参考上面 6.1.1


更新闹钟

更新一个闹钟:

Java:

RokidMobileSDK.skill.cloudAlarm().update(deviceId, alarm, new SDKOperateAlarmCallback() {
    @Override
    public void onSucceed() {
        // TODO
    }

    @Override
    public void onFailed(String errorCode, String errorMessage) {
        // TODO
    }

});

Kotlin:

RokidMobileSDK.skill.cloudAlarm().update(deviceId, alarm, object : SDKOperateAlarmCallback {
    override fun onSucceed() {
        // TODO
    }

    override fun onFailed(errorCode: String?, errorMessage: String?) {
     // TODO
    }

})

注:字段说明 请参考上面 1 和 2