CSR8670 ADK4.2 ble名字改成跟A2DP名字不一样
CSR8670 ADK4.2 ble名字改成跟A2DP名字不一样,但是安卓只要一搜索到BLE,连接上的A2DP名字立马变成了BLE的名字,苹果没有这个问题,请问有什么办法可以解决?自顶自顶自顶 希望各路大神指点一下 各路大神帮忙指点下
overstack上看到的信息,应该是手机在向BT获取设备名称时,BT默认返回的是LOCAL_NAME,可以print追踪下看看流程。
另外,请问下,你的BLE名称怎么改成和A2DP不一样的?是广播包改了吗? liujinhan 发表于 2018-5-31 09:48
overstack上看到的信息,应该是手机在向BT获取设备名称时,BT默认返回的是LOCAL_NAME,可以print追踪下看 ...
在广播读取名字之前把名字改成自己的就可以了,UTF8格式写进去 不要更改localname 名字只改 广播包中的数据 ,就可以了 中庸则己 发表于 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 */
}
} 中庸则己 发表于 2018-5-31 15:36
不要更改localname 名字只改 广播包中的数据 ,就可以了
如果只改广播包数据你第一次搜索配对 ios连接上去还是用以前的A2DP的名字的 liujinhan 发表于 2018-5-31 17:17
请教:是改以下函数中的ad_data_index = setupLocalNameAdvertisingData(ad_data, ad_data_index, 14,...
在改名字的那个发送广播那里改
页:
[1]
2