标签: pairing

以编程方式与Android 4.4+上的BLE设备配对

有没有人有一个完整的工作示例,说明如何以编程方式配对使用密码输入(即6位数PIN)或Android 4.4或更高版本的数字比较的BLE( Bluetooth Classic)设备?通过'以编程方式'我的意思是我告诉Android PIN - 用户不会被提示.

在SO上有很多类似的问题,但它们要么a)关于蓝牙经典,b)旧(之前setPin()createBond()公开),或c)未答复.

我的理解如下.

  1. 您连接到设备并发现其服务.
  2. 您尝试阅读"受保护"特征.
  3. 设备返回身份验证错误.
  4. Android以某种方式启动配对,你告诉它PIN.
  5. 您现在可以阅读该特征.

我已经使用创建设备mBed上运行nRF51-DK和赋予它的单个特性.

我设置了安全参数,如下所示:

ble.securityManager().init(
    true, // Enable bonding (though I don't really need this)
    true, // Require MitM protection. I assume you don't get a PIN prompt without this, though I'm not 100% sure.
    SecurityManager::IO_CAPS_DISPLAY_ONLY, // This makes it us the Passkey Entry (PIN) pairing method.
    "123456"); // Static PIN
Run Code Online (Sandbox Code Playgroud)

然后在我使用的特征

requireSecurity(SecurityManager::SECURITY_MODE_ENCRYPTION_WITH_MITM);
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试使用Nordic Master Control Panel阅读它时,我收到一个如下配对请求通知: …

android bluetooth bluetooth-lowenergy pairing

32
推荐指数
2
解决办法
2万
查看次数

在 Android Studio Bumblebee 中无法通过 Wi-Fi 配对新设备

当我尝试配对设备时,二维码或配对码都不起作用,只是陷入了寻找设备的困境......

我的手机运行 Android 11 和 12,并且 Wi-Fi 调试已打开。

Android Studio“配对设备”对话框

android android-studio pairing

29
推荐指数
5
解决办法
3万
查看次数

Android蓝牙 - 配对vs连接,有什么区别?

android noob在这里!

当两个Android设备(智能手机)"配对"和"连接"时有区别吗?如果是这样,将数据从一个传输到另一个有什么区别?

android bluetooth pairing

13
推荐指数
1
解决办法
1万
查看次数

预配对蓝牙设备

我希望能够预先配对蓝牙设备,以便在使用应用程序时节省用户混淆的步骤.我发现有用于预配对蓝牙设备的系统,方法和装置的专利 .

我正在寻找将一系列Android设备与一系列嵌入式设备配对,因此当设置Android设备时,我可以预先将它与需要与之通信的设备配对.我考虑过维护一个可以由应用程序下载和更新的MAC地址列表.

有没有办法配对两个设备而不必让它们接触?

android android-bluetooth pairing

11
推荐指数
1
解决办法
1511
查看次数

在JustWorks配对模式下,电话(作为外围角色)不显示配对对话框

我正在编写一个通过BLE连接到物理设备的Android应用程序.Android应用程序将充当外围角色,而设备是中心.设备I/O功能也设置为NoInputNoOutput(ble_cmd_sm_set_parameters(0, 8, sm_io_capability_noinputnooutput))

建立连接的流程是:

  • 打开Android应用,然后打开蓝牙Gatt服务器连接 bluetoothManager.openGattServer()
  • 将BluetoothGattService添加到BluetoothGattServer中(此处该服务包含一些具有属性Indicate&Notify,权限读取和写入的特征)
  • 添加所有服务后,开始发送广告
  • 触摸设备上的按钮,让它开始扫描外围设备.
  • 当检测到手机时,设备会向手机发送配对信号.
  • 接收到该信号,理论上,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: AuthReqSecure 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相同.

据我所知,配对是BLE Secure Connections,采用JustWorks模式.但似乎并非所有的Android设备都支持它(你能否确认一下我的想法?).或者,我们如何强制后一个设备也有配对对话框?

一个重要的是,我有一个具有相同连接流和相同物理设备的iOS应用程序,它确实显示了配对对话框.

android bluetooth bluetooth-lowenergy bluetooth-peripheral pairing

11
推荐指数
0
解决办法
393
查看次数

通过 Wifi 在 Android Studio BumbleBee 上配对新设备

我最近更新到 Android Bumblebee。我正在尝试通过 wifi 无线连接我的设备。但我总是收到如下屏幕截图所示的消息。

我已经更新到最新的平台工具 SDK 32,但问题仍然存在。任何帮助,将不胜感激。

Wifi 配对问题图片

android android-wifi android-studio pairing android-studio-bumblebee

11
推荐指数
2
解决办法
4915
查看次数

Android上的蓝牙"带外"(OOB)配对?

我一直在网上搜索,并没有看到任何关于如何准确实现OOB配对的方法.我希望有人能指点我一些示例代码来帮助我.Android开发者网站中的聊天示例根本没有真正涉及这种类型的配对.

基本上,我有一个Android平板电脑,我想安全地与一个用C++编写的设备配对,没有内置的显示/ IO机制.要配对的平板电脑将充当GUI/IO接口,我将通过蓝牙发回消息和第四个消息.因此,我想通过OOB配对方案将平板电脑与每台设备进行安全配对.

我理解OOB的概念,但是当我在android.developers.com网站上查找我的Android客户端代码时,我很难找到适当的方法来调用.另外,在查看bluez的东西时,我找不到太多可以继续使用我的C++编写的服务器.

基本用例是用户将通过USB连接将平板电脑连接到设备.USB连接将有助于传递每个设备的密钥/ mac地址,然后使用该信息对蓝牙.

我可以弄清楚USB部分,但是一旦我在客户端和服务器上获得密钥和必要信息,我似乎无法找到正确的方法来调用两端成功并安全地配对.

我已经有一个客户端/服务器通过不安全的连接进行通话,所以我遇到的唯一问题就是两端的实际配对.一旦我配对,我就可以使用secureRFComm来完成我未来的所有消息传递.

android android-bluetooth bluetooth-oob pairing

9
推荐指数
2
解决办法
1万
查看次数

没有用户的Android蓝牙配对使用Android API输入Pin和Confirmation

我是Android编程的初学者,因为我3个月前才开始.我正在做一个项目,使用蓝牙将Android应用程序连接到arduino.我已经有了Android应用程序的代码(bluetooth.adapter,socket,.etc.).连接代码已经正常工作.其中一个目标是Android应用程序在与蓝牙设备配对时自动输入密码,而无需用户输入PIN.

这个论坛上的旧帖子没什么用.(许多建议使用不安全模式,但我确实需要安全模式,在我的情况下,arduino是服务器,而手机应用程序是客户端,因此createInsecureRfcommSocketToServiceRecord()服务器方法对我不起作用)

我在android开发者网站上搜索并发现了这个关于bluetoothdevice类的信息:

setPairingConfirmation(boolean confirm)确认PAIRING_VARIANT_PASSKEY_CONFIRMATION配对的密码.

PAIRING_VARIANT_PIN ="将提示用户输入图钉或应用程序将为用户输入图钉".

PAIRING_VARIANT_PASSKEY_CONFIRMATION ="系统将提示用户确认屏幕上显示的密钥或应用程序将确认用户的密钥"

似乎使用代码,应用程序将是输入密码和确认密码使其成为"自动连接"功能,但Android网站没有给出如何使用它的示例代码.你们有没有使用这个或相关过程的示例代码?我感谢您的帮助!

android bluetooth android-bluetooth pairing

9
推荐指数
1
解决办法
2万
查看次数

Windows iot/apps程序化蓝牙配对

我正在尝试从运行Windows Iot Core的Raspberry Pi 2播放蓝牙信号,以便我可以从智能手机和其他设备连接到它,但我在实际收到配对信号的最后几天一直困扰着.

使用Windows蓝牙文档,我能够广播信号,我可以从我的桌面和手机上看到它.但是,这是我能得到的.我希望能够在没有PIN的情况下进行配对(设备没有屏幕),但是只要选择了设备,配对就会失败.

我在用

SocketProtectionLevel.BluetoothEncryptionAllowNullAuthentication
Run Code Online (Sandbox Code Playgroud)

DevicePairingKinds.None
Run Code Online (Sandbox Code Playgroud)

但连接回调永远不会被击中.我查看了许多类似的问题,这些问题要么没有答案,要么没有相应的信息,因为我使用的是RPI2,而不是桌面应用程序.

我不是想通过网络界面配对,而只是通过代码

.

[UPDATE]

我已经尝试过32feet.NET库,但它似乎太旧了,无法支持PI2.我也尝试了一些NuGet包,似乎没有任何工作.

c# bluetooth raspberry-pi2 windows-10-iot-core pairing

8
推荐指数
1
解决办法
1649
查看次数

蓝牙配对和分页,绑定之间的区别

当我学习蓝牙时,我很难理解蓝牙连接和配对,绑定等.

据我所知,蓝牙连接有以下步骤:

  1. 询问 - 发现
  2. 分页 - 使用查询过程中的地址,形成连接的过程
  3. 连接 - 设备可以主动参与(活动模式)或进入其他模式(嗅探,保持...)

当我们使用蓝牙设备(例如智能手机,蓝牙Heaset)时,它有以下步骤:

  1. 发现设备
  2. 配对(交换地址,PIN码等其他安全信息)
  3. 连接开始

我无法将分页与配对相匹配.我的理解正好在下面吗?

  • 查询=发现设备
  • 寻呼=配对
  • 连接=连接开始

如何合并上述两个类别?

connection bluetooth pairing

8
推荐指数
1
解决办法
5180
查看次数