问题标签 [bluetooth-oob]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android 上的蓝牙“带外”(OOB) 配对?
我一直在搜索互联网,但没有看到任何关于如何准确实现 OOB 配对的方法。我希望这里有人可以向我指出一些示例代码来帮助我。Android 开发者网站中的聊天示例根本没有真正深入探讨这种配对。
基本上,我有一个 Android 平板电脑,我想安全地与一个设备配对,用 C++ 编写,没有内置的显示/IO 机制。要配对的平板电脑将充当 GUI/IO 接口,我将通过蓝牙发送回消息和第四个消息。因此,我想通过 OOB 配对方案将平板电脑与每个设备安全配对。
我了解 OOB 的概念,但是在 android.developers.com 网站上查找我的 android 客户端代码时,我很难找到要调用的正确方法。此外,在查看 bluez 的东西时,我找不到太多可用于我的 C++ 编写服务器的内容。
基本用例是用户将通过 USB 连接将平板电脑连接到设备。USB 连接将有助于为每个设备传递密钥/mac 地址,然后使用该信息对蓝牙彼此。
我可以弄清楚 USB 部分,但是一旦我在客户端和服务器上获得了密钥和必要的信息,我似乎无法找到正确的方法来调用两端以成功和安全地配对。
我已经有一个客户端/服务器通过不安全的连接进行通信,所以我唯一遇到的问题是两端的实际配对。配对后,我可以使用secureRFComm 来处理我未来的所有消息传递。
android - 蓝牙配对 - 如何显示简单的取消/配对对话框?
我在 GitHub 上为这个问题准备了一个简单的测试项目。
我正在尝试创建一个 Android 应用程序,该应用程序将扫描计算机屏幕上的二维码,然后使用数据(MAC 地址和 PIN 或哈希)轻松与蓝牙设备配对(绑定)。
类似于流行的InstaWifi 应用程序- 但适用于经典蓝牙。
出于测试目的,我还没有进行任何条码扫描,只是显示设备列表:
用户触摸其中一台设备后,在MainActivity.java中尝试配对:
不幸的是,弹出窗口仍然要求输入 PIN:
因为我实际上已经在我的源代码中指定了一个 PIN,所以我实际上希望显示另一个更简单的系统对话框(在进行 NFC OOB 配对时会显示这个对话框):
通过搜索解决方案,我知道有一个setPin()方法,但它在这里不适用(或者是吗?) - 因为我正在尝试将整个智能手机与蓝牙设备配对,而不仅仅是应用程序......
我的问题:如何让 Android 操作系统显示简单的取消/配对对话框?
在 GitHub 上搜索蓝牙配对请求字符串没有显示任何提示...
更新:根据 unrealsoul007 的建议(谢谢),我更新了MainActivity.java中的源代码,现在显示了简单的取消/配对对话框:
但是我不确定如何完成配对过程 - 因为甚至在对话框关闭之前onActivityResult
调用:resultCode=0
android - 使用 QR 码作为带外 (OOB) 通道的蓝牙安全简单配对 (SSP)
我有一个 Windows 7 应用程序,它使用Stollmann SDK成功地将 PC 与 Android 绑定。蓝牙 MAC 地址、哈希和随机器的双向交换通过 NFC在带外进行:
遗憾的是,Windows 应用程序的源代码无法在此处共享。在 Android 端,不需要任何应用程序,一旦收到 NDEF 消息,操作系统(由HandoverManager ?)执行安全简单配对。application/vnd.bluetooth.ep.oob
现在我正在尝试创建一个 Android 应用程序,它将使用单向身份验证通过扫描的 QR 码(而不是 NFC)执行 OOB 配对。
自定义二维码将显示在 PC 屏幕上(由ZXing.Net生成)并包含蓝牙 MAC 地址、哈希和随机数。
然而,OOB 绑定似乎尚未在 Android 中实现 -
我的问题:
由于 OOB 蓝牙配对在 Android 上的 NFC 上运行良好 - 你认为有一种(hackish)方法可以通过 QR 码来做同样的事情吗?
也许(疯狂的想法)通过HandoverManager
提供虚假的 NDEF 消息?
ios - iOS 设备和嵌入式 Linux 之间的带外配对
我正在通过 USB(iAP2 协议,CarPlay)在iOS 10设备(iPhone)和嵌入式 Linux设备(3.10 内核版本,5.35 BlueZ版本)之间实现 OOB 配对。
我的问题是:BlueZ 是否支持这种配对?在哪里可以找到这方面的一些信息?
我现在拥有的:
- OBB 配对从 iOS 端完美运行(例如,在第一次建立 USB 连接后,我的 Linux 设备位于手机的“我的设备”蓝牙部分)。
- 在 Linux 附件方面,我正在接收 iPhone 的mac 地址和链接密钥,并将其写入/var/lib/bluetooth/${self_mac_addr}/${recieved_iphones_mac_addr}/info文件。结果,我可以在重新启动
bluetoothd
服务时看到设备“配对”。
我想要完成的事情:
- 将 iPhone 添加到 Linux 设备的 bluez“已配对”部分,而无需重新启动
bluetoothd
. - 接收 iPhone 的名称以写入上述文件(现在我使用 mac 地址作为名称)。
ios - BlueZ:通过它的mac地址获取设备名称
背景:我正在研究iOS 设备和嵌入式 Linux板之间的 OOB 配对(通过 USB)。目前,在 Linux 方面,我正在接收蓝牙链接密钥(未来连接所需)和mac address。
ps:如果您熟悉这个主题 - 请也看看这个问题。
我当前的实现,使用 mac 地址作为设备名称(有关详细信息 - 请参阅上述问题的链接),该问题在第二次bluetoothd
服务重启后得到解决。
问题:有没有办法在 BlueZ 的帮助下获取设备的蓝牙名称?我将在 C 代码中使用它来访问 BlueZ 的 DBus 接口。