Android蓝牙开发 - 连接到未安装的设备

时间:2011-01-19 21:19:10

标签: java android bluetooth

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

我想弹出配对对话框,请求用户输入设备的密码。我的代码以及Android蓝牙代码示例是使用可发现的蓝牙设备制作套接字

device.createRfcommSocketToServiceRecord(MY_UUID); 

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

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

2 个答案:

答案 0 :(得分:0)

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

蒂姆:我可以看到一个流氓应用程序如何滥用这种机制,但有些设备根本不支持传统的基于PIN的身份验证方法(例如WiiMote)。

答案 1 :(得分:0)

我已经看到了一些线索,但还没有真正找到好处 回答。

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

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

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

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

  3. 在任何一种情况下,建立连接的请求都是超时的 在用户(我)可以使用IOException Service输入引脚之前 发现失败了。

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

    有没有其他人想出办法让这项工作成功?