AVRCP(audio vidoe remote control protocol) 协议,音频视频远程控制协议,底层传输基于AVCTP传输协议。在蓝牙中,主要控制蓝牙音乐的播放/暂停/下一曲/上一曲等,以及获取播放状态、音乐信息等。 AVRCP有两个角色CT(contorl devices),TG(target devices).CT通过指令控制TG播放音乐,比如蓝牙耳机是CT,而手机是TG.
1.
Transaction Label:
Packet type:
有两种类型,一种是单独的包(00);一种是连续的包(01 10 11)。
C/R:
该数据帧为命令帧(0)还是响应帧(1);
IPID:
在响应帧中表示无效的配置文件标识符(1),否则为0;在数据帧中为0;
PID:
表示根据所识别的Profile定义的规则对命令/响应帧进行编码。该值应与
在Bluetooth Assigned中为这个概要文件定义的服务类的16位UUID
Payload:
有效负载。(AVCTP Message Frame 中的数据就是有效负载)
Command type:
CONTROL
|
STATUS
|
NOTIFY
|
Reserved:
保留,置0;
Subunit Type
子单元类型,一个设备可能包含多个功能模块,常用Subunit_Panel;
Subunit ID:
子单元ID;Subunit_Panel对应的ID码为0x0;
Opcode:
Vendor Dependent 0;
UNIT INFO
SUBUNIT INFO
PASS
THROUGH
Operands:(操作码)
Company ID: 蓝牙认证联盟的注册代码
Button released: yes/no
Operation ID: 操作ID, 如play, pause,stop,forware,backward.等
Data field length: 0 bytes
Vendor Dependent:
PDU ID:
用每个操作的唯一标识符标识特定的命令/响应
。
GetCapabilities (PDU ID: 0x10):
由CT发送,用于查询对端设备的能力。
ListPlayerApplicationSettingAttributes (PDU ID: 0x11) :
目标设备提供目标支持的播放器应用程序设置属性。
ListPlayerApplicationSettingValues (PDU ID: 0x12) :
请求目标设备列出请求的播放器应用程序设置属性的可能值集
GetCurrentPlayerApplicationSettingValue (PDU ID: 0x13) :
请求目标设备为所提供的播放器应用程序设置属性列表提供目标上的当前设置值。
SetPlayerApplicationSettingValue (PDU ID: 0x14) :
在目标设备上为相应定义的列表设置播放器应用程序设置值的播放器应用程序设置列表
GetPlayerApplicationSettingAttributeText (PDU ID: 0x15) :
GetPlayerApplicationSettingValueText (PDU ID: 0x16) :
InformDisplayableCharacterSet (PDU ID: 0x17) :
告知CT到TG支持的字符集列表。这将允许
使用CT支持的字符集中的字符串发送响应。
InformBatteryStatusOfCT (PDU ID: 0x18) :
每当CT的电池状态被改变时,这个命令帧就会被发送给TG。
GetElementAttributes (PDU ID: 0x20) :
请求TG提供参数中指定的元素的属性。
GetPlayStatus (PDU ID: 0x30) :
用来获取当前正在播放的媒体的状态
RegisterNotification (PDU ID: 0x31) :
向TG注册,以根据发生的特定事件异步接收通知。此通知命令的初始响应应为
当前状态的临时响应,或拒绝/未实现的响应
RequestContinuingResponse (PDU ID: 0x40) :
被CT用来请求发送的连续响应包
PDU命令,尚未完成。
AbortContinuingResponse (PDU ID: 0x41) :
中止持续
响
应。
Packet Type:
有两种类型,一种是单独的包(00);一种是连续的包(01 10 11)。
Reserved:保留
Parameters length:
Parameter: