700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android蓝牙增加自定义按键

Android蓝牙增加自定义按键

时间:2024-05-18 00:24:39

相关推荐

Android蓝牙增加自定义按键

Android蓝牙增加自定义按键

方式1方式2

公司设备需要增加蓝牙手柄,直接使用可以连接但按键事件没反应,一番研究发现得增加自定义的按键。

说明:

Android版本:6.0

蓝牙-设备协议:AVRCP

蓝牙模块:经典蓝牙模块(BT)

方式1

1.修改\system\bt\btif\src\btif_rc.c

/***************************************************************************

Function handle_rc_passthrough_cmd Argument: tBTA_AV_RC rc_id remote control command ID

tBTA_AV_STATE key_state status of key press

Description: Remote control command handler

***************************************************************************/

void handle_rc_passthrough_cmd ( tBTA_AV_REMOTE_CMD *p_remote_cmd)

{

//此处增加需要透传的AT指令

if (p_remote_cmd->rc_id == BTA_AV_RC_FAST_FOR || p_remote_cmd->rc_id == BTA_AV_RC_REWIND || p_remote_cmd->rc_id == BTA_AV_RC_F1…) {

HAL_CBACK(bt_rc_callbacks, passthrough_cmd_cb, p_remote_cmd->rc_id, pressed);

return;

}

}

2.修改\packages\apps\Bluetooth\src\com\android\bluetooth\avrcp\Avrcp.java

private void handlePassthroughCmd(int id, int keyState) {

switch (id) {

case BluetoothAvrcp.PASSTHROUGH_ID_REWIND:

rewind(keyState);

break;

case BluetoothAvrcp.PASSTHROUGH_ID_FAST_FOR:

fastForward(keyState);

break;

}

//增加将刚刚透传的按键发送出去的逻辑

}

方式2

1.修改\system\bt\btif\src\btif_rc.c

static const struct {

const char *name;

uint8_t avrcp;

uint16_t mapped_id;

uint8_t release_quirk;

} key_map[] = {

{ “PLAY”, AVRC_ID_PLAY, KEY_PLAYCD, 1 },

{ “STOP”, AVRC_ID_STOP, KEY_STOPCD, 0 },

{ “PAUSE”, AVRC_ID_PAUSE, KEY_PAUSECD, 1 },

{ “FORWARD”, AVRC_ID_FORWARD, KEY_NEXTSONG, 0 },

{ “BACKWARD”, AVRC_ID_BACKWARD, KEY_PREVIOUSSONG, 0 },

{ “REWIND”, AVRC_ID_REWIND, KEY_REWIND, 0 },

{ “FAST FORWARD”, AVRC_ID_FAST_FOR, KEY_FAST_FORWARD, 0 },

//增加自定义按键

{ “F1”, AVRC_ID_F1, KEY_F1, 0 },

{ NULL, 0, 0, 0 }

};

未完!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。