蓝牙配对(3)Passkey Entry 模型(显示方) 📅 2026/8/10 11:52:35 文章目录1. 触发条件(何时充当显示方)2. BlueZ Agent API 的核心方法:`DisplayPasskey`3. 显示方的完整工作流程图4. 显示方的 Cancel(取消)处理5. 安全性分析(为何能防 MITM)6. 与 Legacy(传统)PIN Code 显示的区别(工程避坑)总结一句话Passkey Entry 模型(显示方)是蓝牙 SSP 中专门用于解决“一端有屏幕(但没键盘),另一端有键盘(但没屏幕)”这一不对称场景的配对方案。它的核心逻辑是:有屏幕的设备(显示方)负责“出示”一个随机的 6 位密码,用户把这个密码手动敲进另一台只有键盘的设备(输入方)里。在这个过程中,显示方全程只负责显示和进度反馈,完全不需要用户点击确认或拒绝。结合 BlueZ 的 Agent API,我为你拆解显示方的底层实现和交互细节:1. 触发条件(何时充当显示方)协议栈根据 I/O 能力自动分配角色。如果你的设备注册的 Capability 为DisplayOnly或KeyboardDisplay,且对端注册为KeyboardOnly,则你的设备被定为显示方。典型场景:蓝牙键盘配对电脑:电脑屏幕(显示方)显示123456,用户在蓝牙键盘(输入方)上敲入这 6 位数字并回车。智能门锁连接手机:门锁小屏幕(显示方)显示动态码,用户在手机 App(输入方)中输入该数字。