CN / EN
CN / EN

提问

获得支持

您的项目私密技术问题如需获得一对一支持,请点击下方联系我们。

GR551X SDK中建立连接时如何识别手机系统(安卓 or 苹果) GR551x

已解决

Ping

汇顶员工
2021-12-17 09:55

1. 集成ancs和ams功能通用处理流程如下:

(1)连接完成事件app_gap_connect_cb()中调用ble_sec_enc_start()启用链路加密;

(2)在app_sec_rcv_enc_ind_cb()中开启定时器;

(3)定时器中调用ancs_c_discovery_service() ;

(4)在BLE_ANCS_C_EVT_DISCOVERY_CPLT事件中启用ams服务;

2. 增加区分手机系统功能的处理流程如下:

(1)连接完成事件app_gap_connect_cb()中调用ble_gattc_services_browse():

sdk_err_t error_code;

error_code = ble_gattc_services_browse(conn_idx, NULL);

if (SDK_SUCCESS == error_code)

{

APP_LOG_DEBUG("Send Service Discovery Command");

}

(2)在事件app_gattc_srvc_browse_cb()中,发现ancs服务后调用ble_sec_enc_start()启用链路加密;

uint8_t
ancs_service_uuid[] =

{ANCS_SRVC_UUID}

;

if(!(memcmp(ancs_service_uuid,p_browse_srvc->uuid,16)))

{

sdk_err_t
error_code;

error_code = ble_sec_enc_start(conn_idx);

APP_ERROR_CHECK(error_code);

APP_LOG_INFO("rrrrrrrrrrrrrrrrrr");

}

(3)在app_sec_rcv_enc_ind_cb()中开启定时器;

(4)定时器中调用ancs_c_discovery_service() ;

(5)在BLE_ANCS_C_EVT_DISCOVERY_CPLT事件中启用ams服务;

其中3,4,5步骤与原来的处理一致就可以。

注意: 在增加区分系统功能流程2中,在事件app_gattc_srvc_browse_cb()中,发现ancs服务后调用ble_sec_enc_start()启用链路加密,如果是安卓就没有发现ancs,就不加密链路。

0收藏

1赞成

最佳答案

Ping

汇顶员工
2022-01-14 11:00


2条评论

0赞成

0收藏

您的评论

登录后可回答问题,请 注册

我们时刻倾听您的声音
联系销售

扫描关注公众号

打开微信,使用“扫一扫”即可关注