10. 闹钟管理

同步手机时间到设备、管理闹钟包括:读取、修改、删除

Important

  1. 最大闹钟个数: 5个

  2. 新增闹钟: 索引index支持: 0-4

    • 新增操作应根据闹钟列表的索引决定当前新建闹钟的index。
      比如, 列表中有索引: 1和3的两个闹钟, 新增闹钟的index应该为2
  3. 闹铃模式可以在固件短配置,所以在使用时需要先检测固件是否支持该功能

10.1. 时间同步

//同步手机时间到设备
//WatchManager是WatchOpImpl的子类,须在1.3配置好sdk
WatchManager watchManager = WatchManager.getInstance();
//初始化时钟功能实现类
RTCOpImpl rtcOp = new RTCOpImpl(watchManager);
//执行同步时间功能并等待结果回调
rtcOp.syncTime(rtcOp.getConnectedDevice(), new OnOperationCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //成功回调
    }

    @Override
    public void onFailed(BaseError error) {
        //失败回调
        //error -- 错误信息
    }
});

10.2. 读取闹钟

//读取闹钟
//WatchManager是WatchOpImpl的子类,须在1.3配置好sdk
WatchManager watchManager = WatchManager.getInstance();
//初始化时钟功能实现类
RTCOpImpl rtcOp = new RTCOpImpl(watchManager);
//注册Rcsp事件监听器
rtcOp.getRcspOp().registerOnRcspEventListener(new OnRcspEventListener() {
    @Override
    public void onAlarmListChange(BluetoothDevice device, AlarmListInfo alarmListInfo) {
        //此处将会回调闹钟列表信息
    }
});
//执行读取闹钟列表功能并等待结果回调
rtcOp.readAlarmList(rtcOp.getConnectedDevice(), new OnOperationCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //成功回调
        //结果将会在OnRcspEventListener#onAlarmListChange处回调
    }

    @Override
    public void onFailed(BaseError error) {
        //失败回调
        //error -- 错误信息
    }
});

10.3. 修改闹钟

//修改闹钟
//WatchManager是WatchOpImpl的子类,须在1.3配置好sdk
WatchManager watchManager = WatchManager.getInstance();
//初始化时钟功能实现类
RTCOpImpl rtcOp = new RTCOpImpl(watchManager);
//注册Rcsp事件监听器
rtcOp.getRcspOp().registerOnRcspEventListener(new OnRcspEventListener() {
    @Override
    public void onAlarmListChange(BluetoothDevice device, AlarmListInfo alarmListInfo) {
        //此处将会回调闹钟列表信息
    }
});
//        AlarmBean alarmBean = "通过读取闹钟得到";
AlarmBean alarmBean = new AlarmBean();
//执行创建或修改闹钟功能并等待结果回调
rtcOp.addOrModifyAlarm(rtcOp.getConnectedDevice(), alarmBean, new OnOperationCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //成功回调,成功设置后重新获取闹钟列表,更新UI
        //rtcOp.readAlarmList(rtcOp.getConnectedDevice(), null);
    }

    @Override
    public void onFailed(BaseError error) {
        //失败回调
        //error -- 错误信息
    }
});

10.4. 删除闹钟

//删除闹钟
//WatchManager是WatchOpImpl的子类,须在1.3配置好sdk
WatchManager watchManager = WatchManager.getInstance();
//初始化时钟功能实现类
RTCOpImpl rtcOp = new RTCOpImpl(watchManager);
//注册Rcsp事件监听器
rtcOp.getRcspOp().registerOnRcspEventListener(new OnRcspEventListener() {
    @Override
    public void onAlarmListChange(BluetoothDevice device, AlarmListInfo alarmListInfo) {
        //此处将会回调闹钟列表信息
    }
});
//        AlarmBean alarmBean = "通过读取闹钟得到";
AlarmBean alarmBean = new AlarmBean();
//执行删除闹钟功能并等待结果回调
rtcOp.deleteAlarm(rtcOp.getConnectedDevice(), alarmBean, new OnOperationCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //成功回调,删除成功后重新获取闹钟列表,更新UI
        //rtcOp.readAlarmList(rtcOp.getConnectedDevice(), null);
    }

    @Override
    public void onFailed(BaseError error) {
        //失败回调
        //error -- 错误信息
    }
});

10.5. 获取默认铃声选择列表

//读取闹钟默认铃声列表,用于设置闹钟铃声
//WatchManager是WatchOpImpl的子类,须在1.3配置好sdk
WatchManager watchManager = WatchManager.getInstance();
//初始化时钟功能实现类
RTCOpImpl rtcOp = new RTCOpImpl(watchManager);
//注册Rcsp事件监听器
rtcOp.getRcspOp().registerOnRcspEventListener(new OnRcspEventListener() {
    @Override
    public void onAlarmDefaultBellListChange(BluetoothDevice device, List<DefaultAlarmBell> bells) {
        //此处将会回调闹钟默认铃声列表信息
    }
});
//执行读取默认闹钟铃声列表功能并等待结果回调
rtcOp.readAlarmDefaultBellList(rtcOp.getConnectedDevice(), new OnOperationCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //成功回调
        //结果将会在OnRcspEventListener#onAlarmDefaultBellListChange处回调
    }

    @Override
    public void onFailed(BaseError error) {
        //失败回调
        //error -- 错误信息
    }
});

10.6. 铃声试听

//读取闹钟默认铃声列表,用于设置闹钟铃声
//WatchManager是WatchOpImpl的子类,须在1.3配置好sdk
WatchManager watchManager = WatchManager.getInstance();
//初始化时钟功能实现类
RTCOpImpl rtcOp = new RTCOpImpl(watchManager);
//注册Rcsp事件监听器
rtcOp.getRcspOp().registerOnRcspEventListener(new OnRcspEventListener() {
    @Override
    public void onAlarmDefaultBellListChange(BluetoothDevice device, List<DefaultAlarmBell> bells) {
        //此处将会回调闹钟默认铃声列表信息
    }
});
//执行读取默认闹钟铃声列表功能并等待结果回调
rtcOp.readAlarmDefaultBellList(rtcOp.getConnectedDevice(), new OnOperationCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //成功回调
        //结果将会在OnRcspEventListener#onAlarmDefaultBellListChange处回调
    }

    @Override
    public void onFailed(BaseError error) {
        //失败回调
         //error -- 错误信息
    }
});

10.7. 停止铃声试听

//停止铃声试听
//WatchManager是WatchOpImpl的子类,须在1.3配置好sdk
WatchManager watchManager = WatchManager.getInstance();
//初始化时钟功能实现类
RTCOpImpl rtcOp = new RTCOpImpl(watchManager);
//执行停止试听铃声功能并等待结果回调
rtcOp.stopAlarmBell(rtcOp.getConnectedDevice(), new OnOperationCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //成功回调
        //设备将会暂停播放铃声
    }

    @Override
    public void onFailed(BaseError error) {
        //失败回调
        //error -- 错误信息
    }
});

10.8. 获取闹铃模式设置

//获取闹铃模式设置
//WatchManager是WatchOpImpl的子类,须在1.3配置好sdk
WatchManager watchManager = WatchManager.getInstance();
boolean enable = watchManager.getDeviceInfo().getAlarmExpandFlag() == 0x01;
if (enable) {
    //不支持闹铃模式设置
    return;
}
//初始化时钟功能实现类
RTCOpImpl rtcOp = new RTCOpImpl(watchManager);
//      AlarmBean alarmBean = "通过读取闹钟得到";
AlarmBean alarmBean = new AlarmBean();
int mask = 0x01 << alarmBean.getIndex();//可以一次获取多个闹钟的闹铃模式设置状态
//执行读取闹钟铃声参数功能并等待结果回调
rtcOp.readAlarmBellArgs(rtcOp.getConnectedDevice(), (byte) mask, new OnOperationCallback<List<AlarmExpandCmd.BellArg>>() {
    @Override
    public void onSuccess(List<AlarmExpandCmd.BellArg> result) {
        //成功回调
        //result - 闹钟铃声参数
    }

    @Override
    public void onFailed(BaseError error) {
        //失败回调
        //error -- 错误信息
    }
});

10.9. 设置闹铃模式

//设置闹铃模式
//WatchManager是WatchOpImpl的子类,须在1.3配置好sdk
WatchManager watchManager = WatchManager.getInstance();
boolean enable = watchManager.getDeviceInfo().getAlarmExpandFlag() == 0x01;
if (enable) {
    //不支持闹铃模式设置
    return;
}
//初始化时钟功能实现类
RTCOpImpl rtcOp = new RTCOpImpl(watchManager);
//        AlarmExpandCmd.BellArg bellArg = "通过获取闹铃模式设置得到";
AlarmExpandCmd.BellArg bellArg = null;
//执行设置闹钟铃声参数功能并等待结果回调
rtcOp.setAlarmBellArg(rtcOp.getConnectedDevice(), bellArg, new OnOperationCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //成功回调
    }

    @Override
    public void onFailed(BaseError error) {
        //失败回调
    }
});

10.10. 监听闹钟铃声

//WatchManager是WatchOpImpl的子类,须在1.3配置好sdk
final WatchManager watchManager = WatchManager.getInstance();
watchManager.registerOnRcspEventListener(new OnRcspEventListener() {
    @Override
    public void onAlarmNotify(BluetoothDevice device, AlarmBean alarmBean) {
        super.onAlarmNotify(device, alarmBean);
        //闹钟闹铃

        //初始化时钟功能实现类
        RTCOpImpl rtcOp = new RTCOpImpl(watchManager);
        //执行停止闹钟闹铃功能并等待结果回调
        rtcOp.stopAlarmBell(device, new OnOperationCallback<Boolean>() {
            @Override
            public void onSuccess(Boolean result) {

            }

            @Override
            public void onFailed(BaseError error) {

            }
        });
    }

    @Override
    public void onAlarmStop(BluetoothDevice device, AlarmBean alarmBean) {
        super.onAlarmStop(device, alarmBean);
        //闹钟闹铃已停止
    }
});