【问题标题】:Android Bluetooth Development - connecting to an UNPAIRED deviceAndroid 蓝牙开发 - 连接到未配对的设备
【发布时间】:2011-04-12 04:30:48
【问题描述】:

首先,如果我事先手动配对,我可以通过蓝牙以编程方式连接到设备。但是,我还没有找到一种(用户友好的)方法来连接未配对的设备(显然是可发现的),即使使用未更改的示例 Android 蓝牙代码也是如此。

我想弹出配对对话框,要求用户输入设备的密码。我的代码和示例 Android 蓝牙代码会发生什么,是用可发现的蓝牙设备创建一个套接字

device.createRfcommSocketToServiceRecord(MY_UUID); 

会在屏幕顶部的通知栏添加一个通知;但是,用户甚至不太可能注意到新通知(我知道我没有注意到)。

如何弹出配对对话框,提示用户输入密码 - 或者更好的是,自动为特定设备提供密码?

【问题讨论】:

  • 如果您自动将我连接到未配对的设备,我当然不想要您的程序。我希望这样的安全漏洞不存在。

标签: java android bluetooth


【解决方案1】:

您可以使用BlueCove 库来执行此操作。但是,它可能比您想要的要重一些,因为它需要一个本地组件,但作为回报,您可以真正访问手机上的蓝牙。

Tim:我知道流氓应用程序如何滥用这种机制,但有些设备根本不支持传统的基于 PIN 的身份验证方法(例如 WiiMote)。

【讨论】:

    【解决方案2】:

    我已经看到了一些关于这个的主题,但还没有真正找到一个好的 回答。

    我正在将我的 nexus 1 连接到蓝牙 spp 服务器设备以读取 并写入数据。

    经过一些实验,我发现了以下内容

    1. 如果我从 UI 线程卸载连接的建立 (我认为这是个好主意)配对对话框(输入密码)是 不显示 - 而是出现用户必须的通知项 单击以配对设备。

    2. 如果我从 UI 线程中建立连接,那么 配对对话框将出现在前台,但显然有一个 等待这个时,小的丑陋的 UI 暂停。

    在任何一种情况下,建立连接的请求都会超时 在用户(我)可以使用 IOException 服务输入 pin 之前 发现失败。

    我的理想是配对对话框出现在前面(没有 必须阻止我的 UI 线程)并且连接尝试不会 等待配对进入时超时。

    有没有其他人想出一种方法来完成这项工作?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-08
      • 2021-04-26
      • 1970-01-01
      • 1970-01-01
      • 2010-10-21
      • 1970-01-01
      相关资源
      最近更新 更多