6. 时钟功能
6.1. 同步时间
JL_BluetoothManager方式
function :
AttrAndFunCode.SYS_INFO_FUNCTION_RTC – 时钟功能type :
AttrAndFunCode.SYS_INFO_ATTR_RTC_TIME – 标识更新时间value : timestamp: year(2Bytes) + month(1Byte) + day(1Byte) + hour(1Byte) + minute(1Byte) + second(1Byte)
命令构造
CommandBase syncTimeCmd = CommandBuilder.buildSyncTimeCmd(Calendar.getInstance());
代码示例参考 设置设备系统属性
RCSPController方式
//获取RCSPController对象
RCSPController controller = RCSPController.getInstance();
//执行同步时间功能并等待结果回调
controller.syncTime(controller.getUsingDevice(), new OnRcspActionCallback<Boolean>() {
@Override
public void onSuccess(BluetoothDevice device, Boolean message) {
//成功回调
}
@Override
public void onError(BluetoothDevice device, BaseError error) {
//失败回调
//error - 错误信息
}
});
6.2. 读取闹钟列表
JL_BluetoothManager方式
function :
AttrAndFunCode.SYS_INFO_FUNCTION_RTC – 时钟功能mask : – 时钟参数
* AttrAndFunCode.SYS_INFO_ATTR_RTC_ALARM – 闹钟列表
* AttrAndFunCode.SYS_INFO_ATTR_RTC_ALARM_EXPAND_FLAG – 闹钟拓展参数
* AttrAndFunCode.SYS_INFO_ATTR_RTC_ALARM_VER – 闹钟版本
命令构造
CommandBase getAlarmListCmd = CommandBuilder.buildGetAlarmCmd();
代码示例参考 查询设备系统信息
RCSPController方式
//获取RCSPController对象
RCSPController controller = RCSPController.getInstance();
//注册蓝牙RCSP事件监听器
controller.addBTRcspEventCallback(new BTRcspEventCallback() {
@Override
public void onAlarmListChange(BluetoothDevice device, AlarmListInfo alarmListInfo) {
//此处将会回调闹钟列表信息
}
});
//执行获取闹钟列表功能并等待结果回调
controller.readAlarmList(controller.getUsingDevice(), new OnRcspActionCallback<Boolean>() {
@Override
public void onSuccess(BluetoothDevice device, Boolean message) {
//成功回调
//结果将会BTRcspEventCallback#onAlarmListChange回调
}
@Override
public void onError(BluetoothDevice device, BaseError error) {
//失败回调
//error - 错误信息
}
});
Note
闹钟列表信息, AlarmListInfo
6.2.1. AlarmListInfo
闹钟列表信息
public class AlarmListInfo {
private int version; //版本号
private List<AlarmBean> alarmBeans; //闹钟列表
}
6.2.2. AlarmBean
闹钟信息
public class AlarmBean {
//索引
private byte index;
//名称
private String name;
//小时
private byte hour;
//分钟
private byte min;
//类型
private byte repeatMode;
//拓展字段
private String reserved;
//是否开启
private boolean open;
//铃声类型
private byte bellType;//0: 默认类型 1:设备文件类型
//铃声簇号
private int bellCluster; //当bellType=0时,这里是铃声序号 当bellType=1时 这里是文件簇号
//铃声名称
private String bellName; //当bellType=1时有效
//铃声所在设备序号
private byte devIndex;//当bellType=1时有效
private int version;
}
6.3. 添加或者修改闹钟
JL_BluetoothManager方式
function :
AttrAndFunCode.SYS_INFO_FUNCTION_RTC – 时钟功能type :
AttrAndFunCode.SYS_INFO_ATTR_RTC_ALARM – 标识闹钟操作value : op(1Byte)+len(1Byte)+payload(n Bytes)
命令构造
AlarmBean alarm; //闹钟属性,创建或者读取闹钟列表获取
CommandBase addAlarmCmd = CommandBuilder.buildSetAlarmCmd(AlarmBean.toAttrbean(alarm, false));
代码示例参考 设置设备系统属性
RCSPController方式
//获取RCSPController对象
RCSPController controller = RCSPController.getInstance();
AlarmBean alarm; //闹钟属性,创建或者读取闹钟列表获取
//执行添加或修改闹钟功能并等待结果回调
controller.addOrModifyAlarm(controller.getUsingDevice(), alarm, new OnRcspActionCallback<Boolean>() {
@Override
public void onSuccess(BluetoothDevice device, Boolean message) {
//成功回调
}
@Override
public void onError(BluetoothDevice device, BaseError error) {
//失败回调
//error - 错误信息
}
});
Note
闹钟对象 AlarmBean
6.4. 删除闹钟
JL_BluetoothManager方式
function :
AttrAndFunCode.SYS_INFO_FUNCTION_RTC – 时钟功能type :
AttrAndFunCode.SYS_INFO_ATTR_RTC_ALARM – 标识闹钟操作value : op(1Byte)+len(1Byte)+payload(n Bytes)
命令构造
AlarmBean alarm; //闹钟属性, 通过读取闹钟列表获取
CommandBase deleteAlarmCmd = CommandBuilder.buildSetAlarmCmd(AlarmBean.toAttrbean(alarm, true));
代码示例参考 设置设备系统属性
RCSPController方式
//获取RCSPController对象
RCSPController controller = RCSPController.getInstance();
AlarmBean alarm ; //闹钟属性, 通过读取闹钟列表获取
//执行删除闹钟功能并等待结果回调
controller.deleteAlarm(controller.getUsingDevice(), alarm, new OnRcspActionCallback<Boolean>() {
@Override
public void onSuccess(BluetoothDevice device, Boolean message) {
//成功回调
}
@Override
public void onError(BluetoothDevice device, BaseError error) {
//失败回调
//error - 错误信息
}
});
Note
闹钟信息 AlarmBean
6.5. 读取闹钟默认铃声列表
JL_BluetoothManager方式
function :
AttrAndFunCode.SYS_INFO_FUNCTION_RTC – 时钟功能mask :
0x01 << AttrAndFunCode.SYS_INFO_ATTR_RTC_ALARM_DEFAULT_BELL_LIST – 时钟参数命令构造
CommandBase readAlarmDefaultBellListCmd = CommandBuilder.buildGetDefaultBellList();
代码示例参考 查询设备系统信息
RCSPController方式
//获取RCSPController对象
RCSPController controller = RCSPController.getInstance();
//注册蓝牙RCSP事件监听器
controller.addBTRcspEventCallback(new BTRcspEventCallback() {
@Override
public void onAlarmDefaultBellListChange(BluetoothDevice device, List<DefaultAlarmBell> bells) {
//此处将会回调默认闹钟铃声列表信息
}
});
//执行获取默认闹钟铃声列表功能并等待结果回调
controller.readAlarmDefaultBellList(controller.getUsingDevice(), new OnRcspActionCallback<Boolean>() {
@Override
public void onSuccess(BluetoothDevice device, Boolean message) {
//成功回调
//结果将会BTRcspEventCallback#onAlarmDefaultBellListChange回调
}
@Override
public void onError(BluetoothDevice device, BaseError error) {
//失败回调
//error - 错误信息
}
});
Note
默认闹钟铃声, DefaultAlarmBell
6.5.1. DefaultAlarmBell
默认闹钟铃声
public class DefaultAlarmBell {
private String name; //名称
private int index; //索引
private boolean selected; //是否选择
}
6.6. 读取指定闹钟铃声参数
JL_BluetoothManager方式
命令构造
byte mask = 0; //闹钟序号
CommandBase readAlarmBellArgs = CommandBuilder.buildReadBellArgsCmd(mask);
代码示例参考 通用命令处理示例
RCSPController方式
//获取RCSPController对象
RCSPController controller = RCSPController.getInstance();
//alarmIndex - 闹钟序号
//执行获取指定闹钟的铃声参数功能并等待结果回调
controller.readAlarmBellArgs(controller.getUsingDevice(), alarmIndex, new OnRcspActionCallback<List<AlarmExpandCmd.BellArg>>() {
@Override
public void onSuccess(BluetoothDevice device, List<AlarmExpandCmd.BellArg> message) {
//成功回调
//message - 铃声参数
}
@Override
public void onError(BluetoothDevice device, BaseError error) {
//失败回调
//error - 错误信息
}
});
6.6.1. BellArg
铃声参数
public static class BellArg {
/**
* 闹钟索引
*/
private int index;
/**
* 是否允许设置循环次数
*/
private boolean isCanSetCount;
/**
* 循环次数
*/
private int count;
/**
* 是否允许设置重复间隔
*/
private boolean isCanSetInterval;
/**
* 重复间隔
*/
private int interval;
/**
* 是否允许设置响铃时长
*/
private boolean isCanSetDuration;
/**
* 响铃时长
*/
private int duration;
}
6.7. 设置指定闹钟铃声参数
JL_BluetoothManager方式
命令构造
AlarmExpandCmd.BellArg arg; //闹钟铃声参数
CommandBase setAlarmBellArgCmd = CommandBuilder.buildSetBellArgsCmd(arg);
代码示例参考 通用命令处理示例
RCSPController方式
//获取RCSPController对象
RCSPController controller = RCSPController.getInstance();
//alarmBellArg - 通过读取闹钟铃声参数获得
AlarmExpandCmd.BellArg alarmBellArg; //闹钟铃声参数
//执行设置指定闹钟的铃声参数功能并等待结果回调
controller.setAlarmBellArg(controller.getUsingDevice(), alarmBellArg, new OnRcspActionCallback<Boolean>() {
@Override
public void onSuccess(BluetoothDevice device, Boolean message) {
//成功回调
}
@Override
public void onError(BluetoothDevice device, BaseError error) {
//失败回调
//error - 错误信息
}
});
Note
闹钟铃声参数, BellArg
6.8. 试听闹钟铃声
JL_BluetoothManager方式
function :
AttrAndFunCode.SYS_INFO_FUNCTION_RTC – 时钟功能type :
AttrAndFunCode.SYS_INFO_ATTR_RTC_ALARM_AUDITION – 标识试听闹钟铃声value : op(1Byte)+type(1Byte)+dev(1Byte)+cluster(4Bytes)
命令构造
int type = 0; //播放类型
int dev = 0; //存在设备标识
int cluster = 0; //簇号
CommandBase auditionAlarmBellCmd = CommandBuilder.buildAuditionAlarmBellCmd(type, dev, cluster);
代码示例参考 设置设备系统属性
RCSPController方式
//获取RCSPController对象
RCSPController controller = RCSPController.getInstance();
AuditionParam param = null; //试听参数
//执行试听闹钟铃声功能并等待结果回调
controller.auditionAlarmBell(controller.getUsingDevice(), param, new OnRcspActionCallback<Boolean>() {
@Override
public void onSuccess(BluetoothDevice device, Boolean message) {
//成功回调
}
@Override
public void onError(BluetoothDevice device, BaseError error) {
//失败回调
//error - 错误信息
}
});
6.8.1. AuditionParam
试听铃声参数
public class AuditionParam implements Parcelable {
private byte op; //操作码, 0 : 停止 1 : 响铃
private byte type; //铃声类型, 0 : 默认 1 : 文件
private byte dev; //存储器索引
private int cluster; //文件簇号
private String name; //铃声名称
}
Note
试听铃声参数, AuditionParam
6.9. 停止试听闹钟铃声
JL_BluetoothManager方式
function :
AttrAndFunCode.SYS_INFO_FUNCTION_RTC – 时钟功能type :
AttrAndFunCode.SYS_INFO_ATTR_RTC_ALARM_AUDITION – 标识试听闹钟铃声value : op(1Byte), op = 0x00
命令构造
CommandBase stopAuditionAlarmBellCmd = CommandBuilder.buildStopAuditionAlarmBellCmd();
代码示例参考 设置设备系统属性
RCSPController方式
//获取RCSPController对象
RCSPController controller = RCSPController.getInstance();
//执行停止试听闹钟铃声功能并等待结果回调
controller.stopAlarmBell(controller.getUsingDevice(), new OnRcspActionCallback<Boolean>() {
@Override
public void onSuccess(BluetoothDevice device, Boolean message) {
//成功回调
}
@Override
public void onError(BluetoothDevice device, BaseError error) {
//失败回调
//error - 错误信息
}
});