问题标签 [pairing]
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蓝牙配对随机取消配对
我认为配对蓝牙是一个“长期”过程(一旦配对,它将永远存在),在我的测试中,我的设备有时会停止配对。
我需要一个配对的设备来保持配对:取消配对是我无法阻止的正常情况吗?如果不是,什么可能导致此问题以及如何解决?
bluetooth - 在 bluez 5 上使用固定 PIN 进行蓝牙配对
我正在尝试通过蓝牙连接 2 个或更多 Raspberry Pi 3 板。我正在寻找在配对时设置安全性的选项。我正在使用 Raspian-stretch(可用的最新版本)。RPI-3 上可用的 Bluez 版本是 5.23(如 bluetoothd -v 命令所示)。
我正在使用无头版本。我希望配对得到保护(意味着应该有某种身份验证我可以设置,如 PIN(4 位)或密码(6 位)),而无需用户登录。因此,如果我必须将手机连接到 RPI,则无需登录 RPI 即可输入 PIN/密码。然后我想设置蓝牙 PAN 网络,以便我可以在连接到 PAN 网络的设备之间进行通信。
我想使用系统文件中或我可以指向的某个地方的 PIN 来配对设备。例如,/temp/ 目录中的 pin.txt 文件或通过运行代理来设置 PIN。我从其他帖子中读到 bluez5.x 摆脱了 bluez 早期版本中使用的蓝牙代理来完成我可以完成的事情。
bluetoothctl 中的代理,例如 DisplayOnly、KeyboardDisplay、NoInputNoOutput、DisplayYesNo、KeyboardOnly,要么设置必须手动输入的动态密钥或确认密钥,要么在 NoInputNoOutput 的情况下允许任何设备配对和连接而无需任何身份验证。
这是我在该论坛上找到的链接,说明该代理不再可用: https://www.raspberrypi.org/forums/viewtopic.php?t=133961 我还提到了一些显示设备配对的示例,但是没有解决我正在寻找的东西。
手册页上也没有可用的信息。 https://manpages.debian.org/stretch/bluez/bluetoothctl.1.en.html
这是我发现的有关命令的内容,但仍然不是我要查找的内容。 https://wiki.archlinux.org/index.php/蓝牙
我还发布了这个 Raspberry Pi 论坛。这是链接: https ://www.raspberrypi.org/forums/viewtopic.php?f=29&t=195090
任何解决此问题的帮助或建议或我可以参考的文档链接都将不胜感激。
提前致谢。
android - 设备重启时,Android 配对蓝牙消失
我希望连接的设备在不扫描蓝牙的情况下获取BluetoothDevice设备信息,所以我存储了所有蓝牙连接的设备。
然而,虽然其他设备的行为与预期相同,但当手机重新启动时,一种类型的蓝牙设备会丢失其配对信息。
有谁知道为什么会发生这种情况,或者有另一种方法可以在不扫描的情况下获取蓝牙设备信息?
android - 带有 pin 码的 Android 自动配对(绑定)蓝牙 (BLE) 设备
我正在尝试在没有用户交互的情况下配对蓝牙 (BLE) 设备 - 这意味着配对将仅以编程方式完成,用户不会选择蓝牙设备,也不会输入 PIN 码。我正在使用以下代码:
发生了几件事:
- 该应用程序尝试配对设备,但我收到一条 toast 消息 - “无法配对设备,请稍后再试”。
- BroadcastReceiver 没有被调用。
有人可以帮我解决这个问题吗?
c# - 在 UWP 中处理蓝牙(经典)配对取消配对请求
我正在尝试以编程方式接受来自 Win 10 iot 上的 Android 设备的蓝牙配对请求。不幸的是,这还没有奏效。在任何让我有机会接受安卓设备配对请求的事件上,我都无法挂断!取消配对也是如此。
我
ActivationKind.DevicePairing
通过了OnActivated (IActivatedEventArgs args)
但是,我找不到数据来接受配对。
在我到目前为止看到的示例中,配对总是从 win 10 iot 设备开始,这很有效!但我需要它相反的方式。
谢谢你的帮助
android - Android studio:发现蓝牙设备名称未找到并难以与设备配对
我开发了一个应用程序,它使用特定的蓝牙模块(HC-06)与之通信,但首先它需要与之配对,它使用以下代码进行配对......
该代码在运行 API 17 (Android 4.2.2) 的设备上运行良好,但在 API 23 (android 6.0) 设备上它有点小故障:
首先,它有时会找到设备名称,有时却找不到(这就是为什么我在第 50 行和第 51 行 [如果您复制了代码]、第 23 行和第 24 行没有导入标头)
其次,我注意到当它没有获得设备名称并且我尝试连接时,它很难配对/连接到设备(在我的蓝牙设置中它只是永远显示“配对...”)但是当它确实获得它正确配对的设备名称。
谁能帮我解决这个故障?
ios - 2个IOS应用程序之间的自动连接
我编写了一个包含两个应用程序的解决方案,
第一个应用程序就像一个远程控制应用程序,第二个应用程序根据第一个应用程序的选择显示一些内容。
现在状态:
目前,两个应用程序都Bluetooth
使用 MultipeerConnectivity.framework 通过连接进行通信。
问题:
我总是要手动配对两个应用程序来启动应用程序。
解决方案:
启动两个应用程序,它们应该相互检测并自动配对。
我该如何解决我的问题,是否有任何替代Bluetooth
连接或者我可以设置连接以拥有受信任的设备或类似的东西?
android - 电话(作为外围角色)在 JustWorks 配对模式下不显示配对对话框
我正在编写一个通过 BLE 连接到物理设备的 Android 应用程序。Android 应用程序将充当外围角色,而设备是中心。设备 I/O 功能也设置为 NoInputNoOutput ( ble_cmd_sm_set_parameters(0, 8, sm_io_capability_noinputnooutput)
)
建立连接的流程是:
- 打开 Android 应用程序,然后通过以下方式打开蓝牙 Gatt 服务器连接
bluetoothManager.openGattServer()
- 将 BluetoothGattService 添加到该 BluetoothGattServer 中(这里该服务包含一些具有属性指示和通知、权限读取和写入的特性)
- 添加所有服务后,开始发送广告
- 触摸设备上的一个按钮,让它开始扫描外围设备。
- 当检测到手机时,设备会向手机发送配对信号。
- 接收到该信号,理论上,Android 设备将显示一个带有 2 个按钮 PAIR 和 CANCEL 的配对对话框以确认配对(这是 JustWorks 模式而不是 Passkey,因为它不需要我们使用键盘输入密钥)。
- 然而,在几款 Android 设备上进行测试后,有些设备具有该对话框,例如 Moto Z (Android 6)、Moto G (Android 6),而其他设备则没有,例如 Galaxy S7、Galaxy Tab S2(均为 Android 7)。我使用WireShark捕获和分析这些设备的蓝牙包,并实现前者有
Sent Pairing Request: AuthReq
,Secure Connection Flag = 1
后者有Secure Connection Flag = 0
(有关安全连接标志的更多信息,请参阅蓝牙配对第4部分)
从 Android Studio logcat 读取输出时(如果是三星设备),我得到这些日志:
01-31 15:21:53.322 D/BluetoothAdapter: isSecureModeEnabled
01-31 15:21:53.322 D/BtConfig.SecureMode: isSecureModeOn:false
01-31 15:21:53.325 D/BluetoothAdapter: STATE_ON
01-31 15:21:53.325 D/BluetoothLeAdvertiser: start advertising
不确定 SecureMode 是否与我们提到的 SecureConnection 相同。
据我了解,该配对是带有 JustWorks 模式的 BLE 安全连接。但似乎并非所有 Android 设备都支持它(您能确认我的想法吗?)。或者,我们如何强制后面的设备也有配对对话框?
一件重要的事情是,我有一个具有相同连接流程和相同物理设备的 iOS 应用程序,它确实显示了配对对话框。
android - BLE:使用已绑定的设备启动绑定
我有两个 BLE 设备配置为使用简单的静态通行配对程序和 Android 手机作为客户端作为外围设备工作。1) peripheral_1 地址 = 0xCECECECECE,静态密钥为 123456,设备名称 = Garden,外观 = 通用标签。2) peripheral_2 地址 = 0xC1C1C1C1C1,静态密钥为 123456,设备名称 = Garden,外观 = 通用标签。两个外设 IO 都配置为仅显示。
我尝试通过 nrfConnect 应用程序连接到 peripheral_1,我弹出输入密码,在提供正确的密码后,设备已绑定并且一切正常。对 peripheral_2 重复相同的过程,一切都很好。
现在真正的问题来了。在与 peripheral_2 断开连接后,我尝试连接到 peripheral_1,我再次弹出以输入已绑定设备的密码,为什么?此外,输入密钥后,我无法读取任何特征值,除非我断开连接并重新连接到 peripheral_1。为什么?
现在我用 peripheral_2 重复,我看到了同样的行为(客户要求再次输入密码)。
我认为 STK/LTK 应该是基于 BT 地址唯一生成并存储在客户的数据库中。
假设如果我将其中一个外围设备的外观更改为“未知”,那么我看到客户端在绑定后不要求再次输入密码。只有这种组合外观才有效(“未知”与“”)。非常感谢任何输入和建议。
bluetooth - How to do bluetooth pairing at factory time
I have some Bluetooth LE v4.2 beacons that I will connect ONLY with known devices that we may call "readers". The beacons are program and installed by me. I consume the data and I sell the service.
I want to use a hard-coded shared secret to realize the pairing or communication. My primary concern is that only a known and authenticated device SHALL be able to send data (with integrity protection).
What would be my best option ?
A few previsions :
- We are talking about 1000s of devices, and more will join the network every day.
- I am already doing advertisement filter, etc. I only connect to devices with my vendor id.
- Replacement if preferable to any kind of lack of security in the authentication, my added value is the trust in data.
- I have an OTA update system for all the devices.
Interesting documentation I found about Bluetooth Low Energy (BLE) security :