您好!
我有一个问题 、当我使用 lesc 连接 IOS 设备时、 MAC 地址将被更改。 下次我想连接 IOS 时、ble 将拒绝。 有人说可以用 IRK 来解决这个问题,我不知道如何设置它,你能帮我吗?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我有一个问题 、当我使用 lesc 连接 IOS 设备时、 MAC 地址将被更改。 下次我想连接 IOS 时、ble 将拒绝。 有人说可以用 IRK 来解决这个问题,我不知道如何设置它,你能帮我吗?
您好!
iOS 设备将仅接受配对过程中使用随机专用地址(RPA)的对等设备。
要启用 RPA、您需要将广播器地址模式更改为 RPA (使用公共地址或静态地址)、而 RPA 是使用 IRK 派生的。
我们有一个培训部分介绍如何确保与 RPA 的连接安全。
感谢您的回复。
是的、项目默认值带有公共地址、我不更改配置。 但是当 IOS 设备的 MAC 地址改变了之后、下次我必须在 iphone 上点击"忘记这个设备"、否则就连不上 BLE 了。
以下是项目中的代码:
//初始化配置文件广播和连接参数
gapRole_profileRole = GAP_PROFILE_PER外 设;
void memset (gapRole_irk、0、KEYLEN);
void memset (gapRole_SRK、0、KEYLEN);
GapRole_signCounter = 0;
g3852 Role_Adv 类型= GAP_ADTYPE_ADV_IND;
g45C2 Role_Adv 类型= ADDRMODE_PUBLIC;
g4552 Role_Adv Map=GAP_ADVCHAN_ALL;
g4592 Role_Adv Policy=GAP_FILTER_POLICY_ALL;
好,我会复制代码到 我的项目,并尝试效果,非常感谢
GapRole_state = GAPROLE_STARTed;
STAT = GAP_ConfigDeviceAddr (ADDRMODE_PRIVATE_Resolve、NULL);
if (stat != Success ){gapRole_state = GAPROLE_ERROR;}//更新广播数据
STAT = GAP_UpdateAdertisingData (selfenty Role_Advert、true、g3852 Role_Advert en、g3852;