Ping
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,就不加密链路。
Ping
打开微信,使用“扫一扫”即可关注