我将LBCA2HNZYZ与Dialog版本3.0.6中的SDK一起使用。基于“reporter_fh”示例的应用程序。
我必须实施引脚功能,而不可扩展的连接。
该设备没有显示器和键盘。设备是“外围设备(从设备)”。
配对时,需要“中央(主)”侧的静态PIN码。中心是带有iOS SDK的IPAD。
当我尝试与Android手机与设备配对时,我会使用键盘获取弹出窗口以进入PIN。正确的引脚允许配对。iOS与设备连接,没有任何代码。
我如何要求PIN强制性?
你能告诉我怎么了吗?
提前谢谢。
设备:
嗨Vadym,
您的意思是iOS完成了配对而不询问PIN,然后输入您可以看到服务和特征的数字?你能写下它们吗?如果您的特性没有授权,那么没有人迫使主机需要配对以便阅读它们。也铭记服务发现不是安全的一部分。意味着主机能够看到不需要身份验证的支持的服务和特性,所有服务和特征都可以在服务发现期间(不是它们的值)。如果您希望主机无法看到您的服务,您可以在成功配对/绑定到外围设备后启用它们。现在我想看到iPhone上的服务/特征,而不是在Android上看到它们的一个UI。
谢谢mt_dialog.
你好我不是什么大专家in Bluetooth Low Energy protocol, so may be somebody can help me with few questions:
1.当同一台IPAD(iOS)连接到同一台设备时,是否能够每次询问pin码?
2.与设备配对时,我需要为强制性的询问密码代码做些什么定义?
3.我是否需要在需要授权或标识的情况下进行邻近配置文件属性定义?
4.在Connect建立过程中,函数app_send_pairing_rsp_func()未调用。如何才能要求中央询问连接参数?
在我定义的项目中:app_sec_env.auth=(GAP_auth_REQ_MITM_BOND);
谢谢
嗨,瓦迪姆,
在BLE时,当断开连接时,当断开连接时不会再次通过配对过程,如果主机先前已连接到设备,则需要验证在配对过程中交换的键。因此,如果您的设备正确配对,则唯一的方式将重复配对过程是未配对的。您必须设置您的服务或特定的特征,以便才能授权,只有在配对序列之后只能读取和写入特征,主机将能够看到服务和特征,但他不会能够在配对之前读取它们或写入它们。当他看到特征需要授权时,您的主机必须发出配对请求命令。
谢谢mt_dialog.
你好。
如果我理解对,我需要在功能中定义连接安全选项:
void app_send_pairing_rsp_func(struct gapc_bond_req_ind * param)
并将服务或特定特性设置为需要授权。
当我尝试从IPAD连接时,我没有进入“app\u send\u pairing\u rsp\u func”功能。显然,IPAD已经与该设备配对。
在我们的应用程序中,现在没有取消配对的选项。
核心BLE(iOS)的API是什么,我们需要用于解成对设备并清除验证密钥?
我在“蓝牙设备”中看到设备(设置 - >蓝牙),但我不能做任何事情。
谢谢
嗨Vadym,
在连接建立期间,您是否在app_connection_func中调用app_security_start()?您可以找到函数的实现和SmartTag参考设计中的配对过程的示例。要完成配对过程而不调用App_send_pairing respose_func是一点奇怪的。
谢谢mt_dialog.
你好。
谢谢你的所有答案!它真的很有帮助!
现在我有下一个情况。
当设备首次与中央连接时,请求PIN码弹出窗口显示在iPad上。并第一次正确连接。
从设备中央断开(不忘记绑定)后,无法再次连接。iPad提供消息“连接警报。在询问时断开连接的外设”。我尝试使用SmartTag参考设计的功能:
void app_store_bond_data(void);
void app_clear_bond_data(void);
int app_check_bond_data(struct rand_nb * rand_nb,uint16_t ediv);
void app_load_bond_data(void);
这并没有改善这种情况。
有人可以给我一个提示吗?
非常感谢!
嗨Vadym,
当一个设备配对时不再通过配对过程,主机必须发送和Ecryption请求,以便与对等设备建立安全链接。在SmartTag中,当您的设备绑定并通过配对过程再次进行闪存中的数据并将拒绝连接。
谢谢mt_dialog.
嗨,亲爱的支持。
我试图使用智能标签的例子,但没有这么成功。。。
当IOS在绑定和断开连接后尝试连接时,我进入gapc_encrypt_req_ind_handler()函数,它调用app_connect_confirm()。在它进入app_send_pairing_rsp_func()后。如果我理解正确,它不应该发生。
之后,设备断开连接。
使用Android,它在绑定后连接,当Android中央忘记绑定信息时,设备拒绝连接。
1. iOS所定义的错误是什么?
2.对于相同的情况,当我想用静态pin码(显示器定义的设备)连接外设时,我可以看到的评估板示例是什么。
非常感谢!
嗨Vadym,
在智能标记中,当设备断开连接时与iOS配对以再次连接时,iOS应发送加密请求,因为它们已绑定。在您的情况下,重新连接时,设备再次发送配对请求,并且设备命令外围设备再次执行配对过程?(是的,这不应该发生,因为设备已绑定-请在android手机的“设置”选项卡中检查设备是否已绑定)。在iOS和安卓系统中操作没有特殊的定义。智能标签应该可以在android和iOS上工作,无需任何修改。
谢谢mt_dialog.
你好。
它开始工作。
问题出在IOS 7上。在IOS 9中,它可以正常工作。
有人知道我是否可以使用超过6位数的硬编码的字母数字PIN码?
谢谢
嗨Vadym,
我相信根据蓝牙规范,PIN码是6位数字(从000000到999999)。
谢谢mt_dialog.