嗨,对话框中,
14681 SDK支持“可解析的私有地址”吗?如果有,如何在SDK中开启“可解析私地址”功能?我没有找到任何关于这个的文件。
谢谢
嗨nigelyang,
您需要使用ble_gap_address_set()函数。这个函数将以own_address_t var作为参数,在这个变量中,你必须定义你的设备想要发布的地址类型PRIVATE_RANDOM_RESOLVABLE_ADDRESS。的。该结构体的Addr成员将被忽略,因为您将使用一个随机可解析地址。您还必须填写函数的renew_dur参数,该参数将在特定的时间内更新地址。你可以在68x系列的“设置蓝牙地址和设备名称”的教程部分找到一些相关的指导方针。
由于MT_dialog
嗨,对话框中,我设置如下
Static const own_address_t user_bd_address = {.addr_type = PRIVATE_RANDOM_RESOLVABLE_ADDRESS,.addr = {0x0A,0x0B,0x0C,0x0D,0x0E,0x0F}};
ble_gap_address_set (&user_bd_address, 10000);//每10000ms修改一次
我尝试用手机应用程序监控BD地址,但发现并不是每10秒就换一次。
在这个案例中,有什么是我遗漏或误解的吗?
请检查ble_gap_address_set()函数的ble_gap.h报头中的注释,最小值是150秒,步长为10毫秒。
我在输入正确的密钥后遇到了另一个问题,如果使用PRIVATE_RANDOM_RESOLVABLE_ADDRESS配对失败(evt->status=BLE_ERROR_FAILED)。代码将运行到“case BLE_EVT_GAP_PAIR_COMPLETED:”并打印“配对失败”。但是,如果使用PRIVATE_STATIC_ADDRESS,则成功。我错过了什么布景吗?什么条件将达到“case BLE_EVT_GAP_ADDRESS_RESOLVED:”?
我尝试了3个android手机,相同的应用程序,android版本7.0和8.0可以配对,但6.0版本失败了。可能的原因是什么?
很抱歉再次打扰您,我发现在使用Android 6.0版本的情况下,代码将达不到“case BLE_EVT_GAP_ADDRESS_RESOLVED:”和“case BLE_EVT_GAP_SEC_LEVEL_CHANGED:”。它直接到达case BLE_EVT_GAP_PAIR_COMPLETED:。我不明白为什么SDK会跳过这两种情况。谢谢你的回答。
很好地尝试了android 6.0版本,和随机可解析地址,没有注意到任何问题。如果您没有看到BLE_EVT_GAP_SEC_LEVEL_CHANGED发生,那么在绑定过程中发生了一些事情,嗅探日志将允许您通过空中查看正在发生的事情。
嗨nigelyang,
您需要使用ble_gap_address_set()函数。这个函数将以own_address_t var作为参数,在这个变量中,你必须定义你的设备想要发布的地址类型PRIVATE_RANDOM_RESOLVABLE_ADDRESS。的。该结构体的Addr成员将被忽略,因为您将使用一个随机可解析地址。您还必须填写函数的renew_dur参数,该参数将在特定的时间内更新地址。你可以在68x系列的“设置蓝牙地址和设备名称”的教程部分找到一些相关的指导方针。
由于MT_dialog
嗨,对话框中,
我设置如下
Static const own_address_t user_bd_address = {
.addr_type = PRIVATE_RANDOM_RESOLVABLE_ADDRESS,
.addr = {0x0A,0x0B,0x0C,0x0D,0x0E,0x0F}};
ble_gap_address_set (&user_bd_address, 10000);//每10000ms修改一次
我尝试用手机应用程序监控BD地址,但发现并不是每10秒就换一次。
在这个案例中,有什么是我遗漏或误解的吗?
谢谢
嗨nigelyang,
请检查ble_gap_address_set()函数的ble_gap.h报头中的注释,最小值是150秒,步长为10毫秒。
由于MT_dialog
嗨,对话框中,
我在输入正确的密钥后遇到了另一个问题,如果使用PRIVATE_RANDOM_RESOLVABLE_ADDRESS配对失败(evt->status=BLE_ERROR_FAILED)。代码将运行到“case BLE_EVT_GAP_PAIR_COMPLETED:”并打印“配对失败”。但是,如果使用PRIVATE_STATIC_ADDRESS,则成功。我错过了什么布景吗?什么条件将达到“case BLE_EVT_GAP_ADDRESS_RESOLVED:”?
谢谢
嗨,对话框中,
我尝试了3个android手机,相同的应用程序,android版本7.0和8.0可以配对,但6.0版本失败了。可能的原因是什么?
谢谢
很抱歉再次打扰您,我发现在使用Android 6.0版本的情况下,代码将达不到“case BLE_EVT_GAP_ADDRESS_RESOLVED:”和“case BLE_EVT_GAP_SEC_LEVEL_CHANGED:”。它直接到达case BLE_EVT_GAP_PAIR_COMPLETED:。我不明白为什么SDK会跳过这两种情况。谢谢你的回答。
嗨nigelyang,
很好地尝试了android 6.0版本,和随机可解析地址,没有注意到任何问题。如果您没有看到BLE_EVT_GAP_SEC_LEVEL_CHANGED发生,那么在绑定过程中发生了一些事情,嗅探日志将允许您通过空中查看正在发生的事情。
由于MT_dialog