1,概述
1.1 avrcp协议
全称: Audio / Video Remote Control Profile音/视频远程控制协议
使用场景:不仅控制音频/视频,主要相当于一个远程遥控器,浏览手机上的文件,调整电视机上的菜单等等。
市场产品:蓝牙耳机,蓝牙遥控器,蓝牙自拍干等等
技术知识:
控制器: 远程控制设备,比如蓝牙自拍干
目标设备:比如手机,电视机
1.2 代码路径
客户端: frameworks\base\core\java\android\bluetooth
BluetoothAvrcp.java 定义的A/V 控制信号
BluetoothAvrcpController.java 协议的客户端
BluetoothAvrcpInfo.java 目标设备的元数据
服务端: packages\apps\Bluetooth\src\com\android\bluetooth\ avrcp
AvrcpControllerService.java 协议的服务端
BluetoothAvrcpDataProvider.java 元数据的数据库
Avrcp.java 还不知道这个类具体做什么的
2,接口
蓝牙遥控器的原理其实很简单,发送一个A/V控制信号就可以, BluetoothAvrcp文件提供了丰富的控制信号,简直就是一个遥控器。
public final class BluetoothAvrcp {
/*
* State flags for Passthrough commands
*/
public static final int PASSTHROUGH_STATE_PRESS = 0;
public static final int PASSTHROUGH_STATE_RELEASE = 1;
/*
* Operation IDs for Passthrough commands
*/
public static final int PASSTHROUGH_ID_SELECT = 0x00; /* select */
public static final int PASSTHROUGH_ID_UP = 0x01; /* up */
public static final int PASSTHROUGH_ID_DOWN = 0x02; /* down */
public static final int PASSTHROUGH_ID_LEFT = 0x03; /* left */
public static final int PASSTHROUGH_ID_RIGHT = 0x04; /* right */
public static final int PASSTHROUGH_ID_RIGHT_UP =