1. RCSP基础接口
public interface IRcspOp {
/**
* 注册Rcsp事件回调
*
* @param callback RCSP事件回调
*/
void registerOnRcspCallback(OnRcspCallback callback);
/**
* 注销RCSP事件回调
*
* @param callback RCSP事件回调
*/
void unregisterOnRcspCallback(OnRcspCallback callback);
/**
* 注册RCSP事件监听器
*
* @param listener RCSP事件监听器
*/
void registerOnRcspEventListener(OnRcspEventListener listener);
/**
* 注销RCSP事件监听器
*
* @param listener RCSP事件监听器
*/
void unregisterOnRcspEventListener(OnRcspEventListener listener);
/**
* RCSP协议是否初始化
* <p>
* 默认是当前使用的设备
* </p>
* @return boolean 结果
*/
boolean isRcspInit();
/**
* RCSP协议是否初始化
*
* @param device 蓝牙设备
* @return boolean 结果
*/
boolean isRcspInit(BluetoothDevice device);
/**
* 获取蓝牙库配置
*
* @return 蓝牙库配置
*/
BluetoothOption getBluetoothOption();
/**
* 获取设备信息
*
* @return {@link DeviceInfo} 设备信息
*/
DeviceInfo getDeviceInfo();
/**
* 获取设备信息
*
* @param device 蓝牙设备
* @return {@link DeviceInfo} 设备信息
*/
DeviceInfo getDeviceInfo(BluetoothDevice device);
/**
* 获取设备配置信息
*
* @param device 蓝牙设备
* @return DeviceConfiguration 设备配置信息
*/
DeviceConfiguration getDeviceConfiguration(BluetoothDevice device);
/**
* 配置蓝牙库参数
*
* @param option 参数配置
*/
void configure(BluetoothOption option);
/**
* 发送RCSP命令
*
* @param device 蓝牙设备对象
* @param cmd RCSP命令
* @param timeoutMs 超时时间。单位是毫秒
* @param callback 发送回调
*/
void sendCommandAsync(BluetoothDevice device, CommandBase cmd, int timeoutMs, RcspCommandCallback callback);
/**
* 发送RCSP命令
*
* <p>
* 等效于{@link #sendCommandAsync(BluetoothDevice, CommandBase, int, RcspCommandCallback)},<br/>
* 为了保证接口一致
* </p>
*
* @param device 蓝牙设备对象
* @param cmd RCSP命令
* @param timeoutMs 超时时间。单位是毫秒
* @param callback 发送回调
*/
void sendRcspCommand(BluetoothDevice device, CommandBase cmd, int timeoutMs, RcspCommandCallback callback);
/**
* 发送RCSP命令
*
* @param device 蓝牙设备对象
* @param cmd RCSP命令
* @param callback 发送回调
*/
void sendRcspCommand(BluetoothDevice device, CommandBase cmd, RcspCommandCallback callback);
/**
* 发送RCSP回复命令
*
* @param device 蓝牙设备对象
* @param responseCmd RCSP回复命令
* @param callback 发送回调
*/
void sendCommandResponse(BluetoothDevice device, CommandBase responseCmd, RcspCommandCallback callback);
/**
* 发送RCSP回复命令
* <p>
* 等效于{@link #sendCommandResponse(BluetoothDevice, CommandBase, RcspCommandCallback)},<br/>
* 为了保证接口一致
* </p>
*
* @param device 蓝牙设备对象
* @param responseCmd RCSP回复命令
*/
void sendRcspResponse(BluetoothDevice device, CommandBase responseCmd);
/**
* 切换已连接设备为正在使用设备
* <p>
* 可以通过{@link OnRcspCallback#onSwitchConnectedDevice(BluetoothDevice)} 获取切换情况
* </p>
*
* @param device 已连接设备
*/
void switchConnectedDevice(BluetoothDevice device);
/**
* 释放资源
*/
void release();
}
1.1. OnRcspCallback
RCSP状态回调
public abstract class OnRcspCallback {
/**
* Rcsp协议初始化回调
*
* @param device 已连接设备
* @param code 初始化结果
* <p>
* 结果如下:<br/>
* {@link com.jieli.bluetooth.constant.ErrorCode#ERR_NONE} --- 正常状态 <br/>
* {@link com.jieli.bluetooth.constant.ErrorCode#SUB_ERR_START_AUTH_DEVICE} --- 开始设备认证失败<br/>
* {@link com.jieli.bluetooth.constant.ErrorCode#SUB_ERR_AUTH_DEVICE} --- 设备认证失败<br/>
* {@link com.jieli.bluetooth.constant.ErrorCode#SUB_ERR_DEVICE_IN_OTA} --- 强制升级状态 <br/>
* {@link com.jieli.bluetooth.constant.ErrorCode#SUB_ERR_REMOTE_DEVICE_DISCONNECT} --- 设备断开 <br/>
* 其他错误码
* </p>
*/
public void onRcspInit(BluetoothDevice device, int code) {
}
/**
* 设备发送的rcsp命令回调
*
* @param device 已连接设备
* @param command RCSP命令
*/
public void onRcspCommand(BluetoothDevice device, CommandBase command) {
}
/**
* 设备发送的数据命令回调
*
* @param device 已连接设备
* @param dataCmd 数据命令
*/
public void onRcspDataCmd(BluetoothDevice device, CommandBase dataCmd) {
}
/**
* RCSP错误事件回调
*
* @param device 设备对象
* @param error 错误信息
*/
public void onRcspError(BluetoothDevice device, BaseError error) {
}
/**
* 设备连接状态
*
* @param device 蓝牙设备
* @param status 连接状态
*/
public void onConnectStateChange(BluetoothDevice device, int status) {
}
/**
* 切换已连接且正在使用的设备的回调
*
* @param device 已连接设备
*/
public void onSwitchConnectedDevice(BluetoothDevice device) {
}
}
1.2. RCSP事件监听器
public abstract class OnRcspEventListener {
/**
* 设备模式改变回调
*
* @param device 蓝牙设备
* @param mode 设备当前模式
*/
public void onDeviceModeChange(BluetoothDevice device, int mode) {
}
/**
* 设备系统音量改变回调
*
* @param device 蓝牙设备
* @param volume 设备系统音量
*/
public void onVolumeChange(BluetoothDevice device, VolumeInfo volume) {
}
/**
* 设备EQ信息改变回调
*
* @param device 蓝牙设备
* @param eqInfo EQ信息
*/
public void onEqChange(BluetoothDevice device, EqInfo eqInfo) {
}
/**
* 设备外接存储器改变回调
*
* @param device 蓝牙设备
* @param storageInfo 设备信息
*/
public void onDevStorageInfoChange(BluetoothDevice device, DevStorageInfo storageInfo) {
}
/**
* 设备支持文件格式回调
*
* @param device 蓝牙设备
* @param fileFormat 设备支持文件格式
*/
public void onFileFormatChange(BluetoothDevice device, String fileFormat) {
}
/**
* 音乐歌曲改变回调
*
* @param device 蓝牙设备
* @param nameInfo 音乐信息
*/
public void onMusicNameChange(BluetoothDevice device, MusicNameInfo nameInfo) {
}
/**
* 音乐播放状态回调
*
* @param device 蓝牙设备
* @param statusInfo 音乐状态
*/
public void onMusicStatusChange(BluetoothDevice device, MusicStatusInfo statusInfo) {
}
/**
* 播放模式改变回调
*
* @param device 蓝牙设备
* @param playModeInfo 播放模式信息
*/
public void onPlayModeChange(BluetoothDevice device, PlayModeInfo playModeInfo) {
}
/**
* 设备电量改变回调
*
* @param device 蓝牙设备
* @param batteryInfo 电量信息
*/
public void onBatteryChange(BluetoothDevice device, BatteryInfo batteryInfo) {
}
/**
* 外接设备的状态回调
*
* @param device 蓝牙设备
* @param isPlay 是否播放
*/
public void onAuxStatusChange(BluetoothDevice device, boolean isPlay) {
}
/**
* FM频道改变回调
*
* @param device 蓝牙设备
* @param channels 频道信息列表
*/
public void onFmChannelsChange(BluetoothDevice device, List<ChannelInfo> channels) {
}
/**
* FM状态信息改变回调
*
* @param device 蓝牙设备
* @param fmStatusInfo FM状态信息
*/
public void onFmStatusChange(BluetoothDevice device, FmStatusInfo fmStatusInfo) {
}
/**
* 闹钟列表更新回调
*
* @param device 蓝牙设备
* @param alarmListInfo 闹钟列表
*/
public void onAlarmListChange(BluetoothDevice device, AlarmListInfo alarmListInfo) {
}
/**
* 默认闹钟铃声列表
*
* @param device 蓝牙设备
* @param bells 默认闹钟铃声列表
*/
public void onAlarmDefaultBellListChange(BluetoothDevice device, List<DefaultAlarmBell> bells) {
}
/**
* 闹钟提醒回调
*
* @param device 蓝牙设备
* @param alarmBean 闹钟信息
*/
public void onAlarmNotify(BluetoothDevice device, AlarmBean alarmBean) {
}
/**
* 闹钟停止回调
*
* @param device 蓝牙设备
* @param alarmBean 闹钟信息
*/
public void onAlarmStop(BluetoothDevice device, AlarmBean alarmBean) {
}
/**
* 频道发射回调
*
* @param device 蓝牙设备
* @param frequency 频点
*/
public void onFrequencyTx(BluetoothDevice device, float frequency) {
}
/**
* 外设模式改变回调
*
* @param device 蓝牙设备
* @param mode 外设模式
*/
public void onPeripheralsModeChange(BluetoothDevice device, int mode) {
}
/**
* 外设连接状态改变回调
*
* @param device 蓝牙设备
* @param connect 是否连接
* @param mac 设备mac地址
*/
public void onPeripheralsConnectStatusChange(BluetoothDevice device, boolean connect, String mac) {
}
/**
* ID3歌曲info回调
*
* @param device 蓝牙设备
* @param id3MusicInfo id3歌曲信息
*/
public void onID3MusicInfo(BluetoothDevice device, ID3MusicInfo id3MusicInfo) {
}
/**
* 高低音变化回调
*
* @param device 蓝牙设备
* @param high 高音
* @param bass 低音
*/
public void onHighAndBassChange(BluetoothDevice device, int high, int bass) {
}
/**
* Eq预设值变化
*
* @param device 蓝牙设备
* @param eqPresetInfo 预设值
*/
public void onEqPresetChange(BluetoothDevice device, EqPresetInfo eqPresetInfo) {
}
/**
* 通话状态回调
*
* @param device 蓝牙设备
* @param status 通话状态
*/
public void onPhoneCallStatusChange(BluetoothDevice device, int status) {
}
/**
* 拓展功能回调
*
* @param device 蓝牙设备
* @param type 拓展功能
* @param data 拓展有效数据
*/
public void onExpandFunction(BluetoothDevice device, int type, byte[] data) {
}
/**
* 混响参数回调
*
* @param device 蓝牙设备
* @param param 混响参数
*/
public void onReverberation(BluetoothDevice device, ReverberationParam param) {
}
/**
* 动态限幅参数回调
*
* @param device 蓝牙设备
* @param param 动态限幅参数
*/
public void onDynamicLimiter(BluetoothDevice device, DynamicLimiterParam param) {
}
/**
* 灯光控制回调
*
* @param device 蓝牙设备
* @param lightControlInfo 灯光控制信息
*/
public void onLightControlInfo(BluetoothDevice device, LightControlInfo lightControlInfo) {
}
/**
* 声卡EQ信息回调
*
* @param device 蓝牙设备
* @param eqInfo EQ信息
*/
public void onSoundCardEqChange(BluetoothDevice device, EqInfo eqInfo) {
}
/**
* 声卡状态回调
*
* @param device 蓝牙设备
* @param mask 掩码
* @param values 数据
*/
public void onSoundCardStatusChange(BluetoothDevice device, long mask, byte[] values) {
}
/**
* 当前噪声处理模式信息
*
* @param device 设备对象
* @param voiceMode 噪声处理模式
*/
public void onCurrentVoiceMode(BluetoothDevice device, VoiceMode voiceMode) {
}
/**
* 设备所有噪声处理模式信息
*
* @param device 设备对象
* @param voiceModes 噪声处理模式信息列表
*/
public void onVoiceModeList(BluetoothDevice device, List<VoiceMode> voiceModes) {
}
/**
* 辅听验配信息回调
*
* @param device 设备对象
* @param hearingAssistInfo 辅听验配信息
*/
public void onHearingAssistInfo(BluetoothDevice device, HearingAssistInfo hearingAssistInfo) {
}
/**
* 辅听声道状态回调
*
* @param device 设备对象
* @param hearingChannelsStatus 辅听声道状态
*/
public void onHearingChannelsStatus(BluetoothDevice device, HearingChannelsStatus hearingChannelsStatus) {
}
/**
* 声学功能回调
*
* @param device 设备对象
* @param voiceFunc 声学功能数据
*/
public void onVoiceFunctionChange(BluetoothDevice device, VoiceFunc voiceFunc) {
}
/**
* 设备双连状态回调
*
* @param device 设备对象
* @param state 设备双连状态信息
*/
public void onDoubleConnectionChange(BluetoothDevice device, DoubleConnectionState state) {
}
/**
* 设备已连接的手机蓝牙信息回调
*
* @param device 设备对象
* @param info 设备已连接的手机蓝牙信息
*/
public void onConnectedBtInfo(BluetoothDevice device, ConnectedBtInfo info) {
}
}
Note
1.2.1. DevStorageInfo
设备外接存储信息
public class DevStorageInfo {
/**
* 存储器信息
*/
private static final int TYPE_STORAGE_INFO = 1;
/**
* 存储器复用
*/
private static final int TYPE_REUSE_STORAGE = 2;
/**
* 存储器状态
*/
@NonNull
private final List<SDCardBean> storageStates;
/**
* 是否复用
*/
private boolean isDeviceReuse;
/**
* 版本号
*/
private int version;
}
1.2.2. VoiceFunc
声音功能
public abstract class VoiceFunc {
public static final int FUNC_ADAPTIVE = 1; //ANC自适应功能
public static final int FUNC_SMART_NO_PICK = 2; //智能免摘功能
public static final int FUNC_SCENE_DENOISING = 3; //场景降噪功能
public static final int FUNC_WIND_NOISE_DETECTION = 4; //风噪检测功能
public static final int FUNC_VOCAL_BOOSTER = 5; //人声增强功能
private final int type; //数据类型
private int version; //版本号
}
1.2.2.1. 对应声学功能
引用常量 |
类型 |
说明 |
数据模型 |
|---|---|---|---|
FUNC_ADAPTIVE |
1 |
ANC自适应功能 |
|
FUNC_SMART_NO_PICK |
2 |
智能免摘功能 |
|
FUNC_SCENE_DENOISING |
3 |
场景降噪功能 |
|
FUNC_WIND_NOISE_DETECTION |
4 |
风噪检测功能 |
|
FUNC_VOCAL_BOOSTER |
5 |
人声增强功能 |