Android:有什么方法可以通过蓝牙自动配对另一台设备而不提示输入密码?

标签 android bluetooth

我正在寻找一种无需用户干预即可通过蓝牙连接到 Android 设备的方法(假设至少在设备上设置为“可发现”)。从 2.0 开始,设备似乎会在首次相互连接时提示输入随机 PIN 码。我已经尝试了一些蓝牙项目,但似乎都无法正常工作,因为底层蓝牙适配器代码总是会启动。

有什么办法解决这个问题吗?谢谢。

最佳答案

正如 Janusz 所解释的,不可能自动与不同的设备配对,但可以在不配对的情况下与其他设备通信。从 API 级别 10 开始,BluetoothDevice.createInsecureRfcommSocketToServiceRecord方法与搭配BluetoothAdapter.listenUsingInsecureRfcommWithServiceRecord方法允许您创建一个“不安全”的 RFCOMM channel 来连接两个设备,而无需将它们配对。这个 channel 很容易受到中间人攻击:任何其他设备都可能拦截连接,允许它读取每条消息并用自己的消息替换消息。这对您的应用程序来说可能是问题,也可能不是问题。另请注意,这允许您以这种方式建立 RFCOMM channel :它不允许您在不配对的情况下连接到(例如)耳机。

如果您已经知道其他设备的地址,则可以在不发现任何设备的情况下执行此操作。

关于Android:有什么方法可以通过蓝牙自动配对另一台设备而不提示输入密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2513720/

相关文章:

android - 测试我的设备是否可以在 Android 上被发现

android: onDraw 被不断调用

Android:通过 Gmail 共享 zip 文件

android - BroadcastReceiver的onReceive是否并发运行?

bluetooth - 从定制的蓝牙设备发送命令到 Android 手机来控制音乐播放器

BluetoothClass of devices——什么是什么?

android - 以编程方式绑定(bind)到 Android 上的 BLE 设备

java - 在虚拟设备管理器中运行但在手机上强制关闭的代码

android - 为 Android 1.6 设置安装位置?

Android - 如何通过代码将图像放置在现有布局之上?