如何设置 Bluez 5 在配对期间询问 PIN 码

2023-12-29

我使用 QDbus 实现了 org.bluez.Agent1 接口,我想设置一个固定引脚(我将提供给用户),以便验证所有配对请求,并在引脚错误时拒绝它们。代理功能应为“NoInputNoOutput”,因为该项目将部署在没有键盘或显示器的 RaspberryPi 3 上。有办法解决这个问题吗?谢谢


您不应将固定密钥配对的功能初始化为“NoInputOutput”。 NoInputOutput 意味着该设备没有显示并且没有键盘/UI。在注册 BlueZ 时为您的 Agent 提及此功能意味着指示 BlueZ (bluetoothd) 不要调用任何 Agent API 进行身份验证。

这对于无需任何手动干预的自动配对通常很有用。你可以看到这个示例代码 https://gist.github.com/parthitce/eb6b751df3235f7247babc4c9aba41d8,它使用 NoInputOutput 功能来连接设备,无需任何干预。

你需要的是“仅显示 https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/agent-api.txt#n34“指示 BlueZ 呼叫的能力”显示密码 https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/agent-api.txt#n91" or "显示密码 https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/agent-api.txt#n126“基于您设备的 SSP 支持。

您可以在代理中实现 DisplayPinCode/DisplayPasskey 来回复constant始终输入 PIN 码。因此尝试连接的蓝牙设备可以使用相同的恒定 PIN 码进行配对。

这里的 Display Pin /Passkey 只是命名约定或提示 Agent 开发人员编写向导/UI 或任何形式的显示操作。但您可以完全忽略显示操作并回复静态/恒定的6位数字密钥进行配对。

通常,当设备(iPhone/Android 移动设备/任何支持蓝牙的设备)尝试配对调用时,Bluez(在树莓派中)会调用此代理 API”请求密码 https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/agent-api.txt#n115" or "请求密码 https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/agent-api.txt#n80”来自设备端。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何设置 Bluez 5 在配对期间询问 PIN 码 的相关文章

  • 蓝牙连接无需配对

    连接蓝牙设备的正常方式是通过配对 我们需要以非正常方式连接到设备 仅使用蓝牙 MAC 地址 我们不希望系统提示输入 PIN 我们知道该设备支持此技术 但我们找不到在 Android 上执行此操作的方法 缩写代码如下所示 String mac
  • 通过蓝牙读取原始数据

    我有一个数字人机接口设备 我正在尝试使用 32feet net 连接到它 这样我就可以从中读取输入数据并在我的应用程序中处理输出 我以前从未使用蓝牙编程过 并且正在边学习边编程 我可以使用 microsoft broadcom 堆栈将我的设
  • 寻找另一部智能手机的笛卡尔坐标?

    考虑到我有两部智能手机 A 和 B 如果我拿着智能手机 A 有没有办法确定 B 相对于我自己的位置 所以如果我们有这张图片的情况 它会告诉我 B 位于位置 2 1 利用 WiFi 信号强度来获取位置等创造性方法更受欢迎 我还可以确定两部手机
  • 使用 Xamarin Android 连接到蓝牙扫描仪

    我正在开发一个项目 需要连接到蓝牙扫描仪 摩托罗拉 CS3070 我需要捕获输入流并使用它用扫描的条形码填充列表框 我尝试创建一个安全套接字并连接到它 但套接字无法连接 设备已打开并已配对 它充当物理键盘 如果光标位于可编辑字段中 则会填充
  • 调用 sdp_record_register() 时出现分段错误

    我正在尝试使用 BlueZ 在 SDP 中注册我的蓝牙服务 我跟随this http people csail mit edu albert bluez intro x604 html教程 代码编译成功 但当我运行它时 出现分段错误 即使是
  • 对于 Android 蓝牙,EXTRA_PREVIOUS_SCAN_MODE 始终返回错误

    当设备的蓝牙扫描模式更改 即可发现 不可发现 时 我使用以下代码将对象返回到 Cordova cordova getActivity getApplicationContext registerReceiver new BroadcastR
  • 附近连接 2.0:混合不同策略?

    我一直在尝试新的安卓 附近连接 v2 0 https android developers googleblog com 2017 07 announcing nearby connections 20 fully htmlAPI 并对用于
  • 如何检查设备上是否启用了蓝牙

    我想检查设备上是否启用了蓝牙 以便应用程序可以在没有用户交互的情况下使用它 有什么办法可以做到这一点吗 我还可以分别检查蓝牙和蓝牙低功耗吗 我使用以下方法完成了此操作Radio class 检查蓝牙是否已启用 public static a
  • 如何在 Bluez/Linux 上从 GATT 服务器获取断开连接事件

    环境 Bluez 5 14 Linux 3 1 USB 可插拔 BLE 无线电 TI BLE 密钥卡 CC2541 开发套件 Linux 设备 USB BLE 无线电 我们使用 gatttool 启用 TI 密钥卡上的按键事件并开始监听事件
  • Android 2.1:如何轮询现有蓝牙连接的 RSSI 值?

    我需要知道使用 Android 2 1 手机与远程设备建立蓝牙连接的信号强度 从SDK中 我可以看到我可以在发现远程设备时确定RSSI 但我不知道如何随着时间的推移更新该 RSSI 值 有人可以帮我吗 谢谢 从 SDK 中这是获取 RSSI
  • Android BLE API:未收到 GATT 通知

    用于测试的设备 Nexus 4 Android 4 3 连接工作正常 但onCharacteristicChanged我的回调方法从未被调用 但是我正在使用注册通知setCharacteristicNotification char tru
  • 尝试从 Polar H10 获取心率变异性 [蓝牙低功耗示例 UWP]

    我正在与 Polar H10 合作 从中获取心率变异性 我在跑步蓝牙低功耗示例 https github com Microsoft Windows universal samples tree master Samples Bluetoo
  • Mac OS 上的 pybluez 安装错误

    我尝试安装pybluez使用以下命令 pip install pybluez sudo easy install pybluez 但对于这两个命令我最终都会出错 环境 Mac OSX 10 9 1 Python 2 7 点日志 cc fno
  • 如何在Python中使用tcp套接字发送和接收网络摄像头流?

    我正在尝试重新创建这个项目 https github com hamuchiwa AutoRCCar 我拥有的是服务器 我的电脑 和客户端 我的树莓派 我所做的与原始项目不同的是我尝试使用一个简单的网络摄像头而不是树莓派摄像头将图像从我的
  • 使用Web蓝牙API时找不到移动设备

    我正在学习 Web 蓝牙 API 使用 google 开发控制台 我无法找到我的移动设备 还尝试了 github 上提供的演示 https github com WebBluetoothCG demos https github com W
  • Android:每秒更新蓝牙 RSSI

    我试图每秒显示蓝牙信号强度 RSSI Timer 来自检测到的设备 但我无法调用onRecive 多次因为接收器生命周期 http developer android com reference android content Broadc
  • 使用 iPhone 控制蓝牙音频设备

    我正在寻找为 iPhone 编写应用程序 它将能够控制汽车中的收音机和 CD 播放器 收音机和播放器具有可用的蓝牙连接 我开始这个问题是为了获得这个地方所需的所有信息 我有几个问题 但如果您发现任何我没有要求的对我开始开发此应用程序不重要的
  • java 中的蓝牙 (J2SE)

    我是蓝牙新手 这就是我想做的事情 我想获取连接到我的电脑上的蓝牙的设备信息并将该信息写入文件中 我应该使用哪个 api 以及如何实现 我遇到了 bluecove 但经过几次搜索 我发现 bluecove 不能在 64 位电脑上运行 我现在应
  • 如何通过Android应用程序将数据发送到蓝牙打印机?

    我正在开发一个应用程序 它将通过蓝牙将数据发送到打印机进行打印 收据热敏打印机 我已按照此链接中的代码进行操作 http pastie org 6203514 http pastie org 6203514这个链接也http pastie
  • 判断串口是普通COM还是SPP

    我正在寻找一种方法来确定 COM 是标准 COM 还是 SPP COM 也称为 COM 设备的电缆替换蓝牙适配器 我有一个可以在 USB COM gt USB 和蓝牙下工作的设备 并且蓝牙接口可以与 SPP 一起工作 我目前正在使用Syst

随机推荐

  • 无法更改 unicode 字符的字体颜色

    确实很小的事情 但我在 Joomla 前端编辑页面的发布按钮上有这些日历图标 我为此使用 Unicode 字符 U 1F5D2 但我似乎无法使用 CSS 更改其颜色 我试图将其变成白色 浏览器检查员说它是白色的 但显然不是 请参阅此处的示例
  • 在 ARMv8-A Linux 上禁用 CPU 缓存 (L1/L2)

    我想在运行 Linux 的 ARMv8 A 平台上禁用低级缓存 以便独立于缓存访问来测量优化代码的性能 对于英特尔系统 我找到了以下资源 有没有办法在 Linux 系统上禁用 CPU 缓存 L1 L2 https stackoverflow
  • TensorFlow - Saver.restore 未恢复所有参数

    我训练了双向 LSTM 类型的 RNN 近 24 小时 由于误差波动 我决定在允许其继续训练之前减少学习量 由于模型在每个时期都使用 Saver save sess file 保存 因此我终止了训练 CTC 损失已最小化至大约 115 现在
  • 使用 gruntjs 组合并缩小所有 Bower 库

    有没有办法自动将所有 Bower 安装的库合并并缩小为 1 个文件 首先我尝试了最基本的方法 将所有 js所有子目录中的文件 uglify options compress true my target files vendor js bo
  • 如何禁用 libsvm (java) 中的控制台输出

    我正在使用 libsvmjava并且遇到了与描述类似的问题here https stackoverflow com questions 8302519 suppressing the output in libsvm python对于蟒蛇
  • 如何捕获java.sql.SQLIntegrityConstraintViolationException?

    我的应用程序使用 JPA JavaDB 当我尝试保留违反约束的对象时 我得到SQLIntegrityConstraintViolationException http docs oracle com javase 7 docs api ja
  • 为什么 Mongoose 不验证更新?

    我有这个代码 var ClientSchema new Schema name type String required true trim true var Client mongoose model Client ClientSchem
  • 导航控制器栏被切断

    如果通过选择隐藏状态栏status bar style hide during application launch我正在自定义导航栏 如下所示 UINavigationBar appearance setBackgroundImage U
  • 以日历日为单位分割间隔的持续时间

    我有以下数据集 显示一集的开始和结束 日期和时间 ep lt data frame start c 2009 07 13 23 45 00 2009 08 14 08 30 00 2009 09 16 15 30 00 end c 2009
  • “POSIX”是什么意思?

    什么是 POSIX 我已阅读维基百科文章 http en wikipedia org wiki POSIX每次遇到这个词我都会读它 事实是我从来没有真正理解它是什么 任何人都可以通过解释 POSIX 的需要 来向我解释一下吗 POSIX h
  • 尝试混合属于不同事务的对象

    pony orm core TransactionError An attempt to mix objects belonging to different transactions 我知道这个错误是描述性的 我只是不明白为什么会发生 我
  • HikariCP 连接过多

    我有一个Java Servlet 我想将连接池与jdbc 数据库 mysql 一起使用 所以这就是我正在做的 这个类是公共最终类DBConnector private static final HikariDataSource dataSo
  • 如何仅为一个 Razor 页面设置 `ValidationVisitor.MaxValidationDepth` = 1?

    我该如何改变ValidationVisitor MaxValidationDepth在本地为一个 Razor 页面阻止验证子对象 我不想在全球范围内改变它MvcOptions MaxValidationDepth就像文档中描述的那样 最大递
  • 如何在默认 Spring Data JPA 方法上添加 QueryHints?

    我可以将查询缓存与 Spring Data JPA 一起用于我的自定义查询方法 如下所示 public interface CountryRepository extends JpaRepository
  • Spring Singleton 范围与应用程序范围

    单例和应用程序弹簧范围有什么区别 我知道单例作用域为每个应用程序创建一个实例 并且应用程序作用域以相同的方式工作 那么主要区别是什么 我需要一个例子来展示其中的区别 要了解应用程序范围和单例范围之间的区别 您需要了解 ServletCont
  • Spring - 在浏览器中显示 PDF 文件而不是下载

    我正在尝试使用 spring 在浏览器中显示 pdf 我的问题是浏览器下载文件而不是显示它 这是我的代码 RequestMapping value getpdf1 method RequestMethod GET public Respon
  • 将自定义声明添加到 azure b2c 客户端凭据流

    我已将 b2c 配置为客户端凭据流的授权服务器 我想向令牌添加声明 以便我可以使用策略将其发送到 APIM 中的后端服务 但我找不到一种方法来将这个额外的声明添加到令牌中 以便我可以在 APIM 上使用它 注意 可以使用授权代码流 但使用客
  • JavaScript 函数声明和求值顺序

    为什么这些示例中的第一个不起作用 但所有其他示例都起作用 1 does not work function setTimeout someFunction1 10 var someFunction1 function alert here1
  • Linq - 一个列表与另一个列表中的项目除外

    我认为我的问题很简单 但我是 linq 的新手 所以我在这里遇到了困难 我的系统调用一个名为 serviceTOP 的服务 它返回一个列表itemTOP Id Name 这些 ItemsTOP 不在我的系统中 但用户可以选择将哪个 item
  • 如何设置 Bluez 5 在配对期间询问 PIN 码

    我使用 QDbus 实现了 org bluez Agent1 接口 我想设置一个固定引脚 我将提供给用户 以便验证所有配对请求 并在引脚错误时拒绝它们 代理功能应为 NoInputNoOutput 因为该项目将部署在没有键盘或显示器的 Ra