10. 闹钟管理
同步手机时间到设备、管理闹钟包括:读取、修改、删除
Important
最大闹钟个数: 5个
新增闹钟: 索引index支持: 0-4
- 新增操作应根据闹钟列表的索引决定当前新建闹钟的index。比如, 列表中有索引: 1和3的两个闹钟, 新增闹钟的index应该为2
闹铃模式可以在固件短配置,所以在使用时需要先检测固件是否支持该功能
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);
//闹钟闹铃已停止
}
});