xiaomin2 发表于 2018-5-30 11:06:47

CSR8670 ADK4.2 ble名字改成跟A2DP名字不一样

CSR8670 ADK4.2 ble名字改成跟A2DP名字不一样,但是安卓只要一搜索到BLE,连接上的A2DP名字立马变成了BLE的名字,苹果没有这个问题,请问有什么办法可以解决?

xiaomin2 发表于 2018-5-30 11:20:22

自顶自顶自顶

xiaomin2 发表于 2018-5-30 17:21:41

希望各路大神指点一下

xiaomin2 发表于 2018-5-31 08:42:18

各路大神帮忙指点下

liujinhan 发表于 2018-5-31 09:48:55


overstack上看到的信息,应该是手机在向BT获取设备名称时,BT默认返回的是LOCAL_NAME,可以print追踪下看看流程。

另外,请问下,你的BLE名称怎么改成和A2DP不一样的?是广播包改了吗?

xiaomin2 发表于 2018-5-31 14:14:48

liujinhan 发表于 2018-5-31 09:48
overstack上看到的信息,应该是手机在向BT获取设备名称时,BT默认返回的是LOCAL_NAME,可以print追踪下看 ...

在广播读取名字之前把名字改成自己的就可以了,UTF8格式写进去

中庸则己 发表于 2018-5-31 15:36:46

不要更改localname 名字只改 广播包中的数据 ,就可以了

liujinhan 发表于 2018-5-31 17:17:39

中庸则己 发表于 2018-5-31 15:36
不要更改localname 名字只改 广播包中的数据 ,就可以了

请教:是改以下函数中的ad_data_index = setupLocalNameAdvertisingData(ad_data, ad_data_index, 14, BLE_DEVICE_NAME ); ,对吗?

请详细说明下。十分感谢!

void bleSetupAdvertisingData(uint16 size_local_name, const uint8 *local_name, adv_discoverable_mode_t mode)
{
    uint16 ad_data_index = 0;
    uint8 *ad_data = malloc( MAX_AD_DATA_SIZE_IN_OCTETS );
   
        if( NULL != ad_data )
        {
            /* Setup the flags advertising data */
      ad_data_index = setupFlagsAdData(ad_data, mode);
   
                /* Setup the services advertising data */
                ad_data_index = setupServicesAdData(ad_data, ad_data_index);
   
            /* Setup the local name advertising data */
      #if 1
            ad_data_index = setupLocalNameAdvertisingData(ad_data, ad_data_index, size_local_name, local_name );
      #else
      ad_data_index = setupLocalNameAdvertisingData(ad_data, ad_data_index, 14, BLE_DEVICE_NAME );
      #endif
       
               
            /* Register AD data with the Connection library & Tidy up allocated memory*/
            ConnectionDmBleSetAdvertisingDataReq(ad_data_index, ad_data);

      /* free the buffer after use */
                free (ad_data);
        }
        else
        {
                /* Panic, not enough room to BLE Advertise */
        }
}

xiaomin2 发表于 2018-6-1 10:17:26

中庸则己 发表于 2018-5-31 15:36
不要更改localname 名字只改 广播包中的数据 ,就可以了

如果只改广播包数据你第一次搜索配对 ios连接上去还是用以前的A2DP的名字的

xiaomin2 发表于 2018-6-1 10:18:06

liujinhan 发表于 2018-5-31 17:17
请教:是改以下函数中的ad_data_index = setupLocalNameAdvertisingData(ad_data, ad_data_index, 14,...

在改名字的那个发送广播那里改
页: [1] 2
查看完整版本: CSR8670 ADK4.2 ble名字改成跟A2DP名字不一样