Android 蓝牙:服务发现失败,连接到台式机/笔记本电脑

Posted

技术标签:

【中文标题】Android 蓝牙:服务发现失败,连接到台式机/笔记本电脑【英文标题】:Android Bluetooth: Service Discovery Failed, connection to Desktop/Laptop 【发布时间】:2012-03-24 07:09:56 【问题描述】:

我有一个几个月前工作的 android 应用程序,我可以用它通过蓝牙将我的 Droid X2 连接到 ASUS Transformer 平板电脑。该连接工作正常。

我刚刚在几台 Ubuntu 机器上使用 PyBlueZ 完成了客户端/服务器对的编码,并在 Windows 机器上使用 BlueCove 完成了类似的客户端/服务器对。

我认为将这三个工作且经过测试的系统连接起来会轻而易举。不幸的是,我目前无法将我的 Droid X2 连接到我的其他机器,也无法将我的其他机器连接到我的 Droid X2(我不再拥有 ASUS Transformer)。但是,我可以毫无问题地将我的 PyBlueZ 客户端/服务器对连接到我的 BlueCove 客户端/服务器对。

将 Android 设备连接到台式机/笔记本电脑时是否有任何已知的复杂问题?任何必须提供的额外信息,或不同的沟通方式?我正在尝试使用不安全的 rfcomm 通道连接到服务列表。我在两边都使用相同的 UUID。而且,我的 Droid X2 和 ASUS Transfomer 之间存在这种不安全的 rfcomm 服务连接。

一个有趣的方面是,尽管所有系统都使用 UUID,但我的 PyBlueZ 和 BlueCove 实现也有服务名称,但 Android 不要求提供服务名称来连接服务,只要求提供 UUID。这可能是个问题吗?

谢谢。

【问题讨论】:

【参考方案1】:

我遇到的错误是尝试通过蓝牙套接字连接到我的其他设备时连接被拒绝。经过一番痛苦和研究,我发现我可以手动取消我的电脑与手机的配对,然后蓝牙插座就可以正常连接了。

奇怪的是,我什至从未配对过这些设备,所以我不知道它们是怎么做到的。但是,如果您遇到连接被拒绝,请查看您的 Android 设备是否已与您要连接的机器配对,然后手动取消配对,然后再次尝试使用蓝牙插座连接。

希望这可以为某人节省数百小时...

【讨论】:

你能详细说明一下吗?我好像也有类似的问题!似乎 Android 忘记更新已配对设备的新协商的蓝牙链接密钥,或类似的东西。你开的是什么插座?安全还是不安全? 很遗憾,我对蓝牙的了解还不够多,无法评论“链接密钥”。我试图创建从我的 Droid X2 到 3 台计算机的不安全连接,但我也厌倦了安全。每次尝试都因“连接被拒绝”而失败。最初我得到“服务发现失败”,但由于某种未知原因,错误最终改变了。经过大量搜索,我发现了一篇提到手动取消配对设备的帖子(我没有链接了)。我出于沮丧尝试取消配对,并且以某种方式让我的连接尝试通过。我仍然对此感到困惑。 我最终会弄明白的,我在定制的预生产硬件上有一个蓝牙芯片...我必须找出为什么会出现这个错误。到目前为止,我只能说:配对后连接正常(与谁开始配对过程无关)。问题是在我的设备关机后。它将想要重新协商链接密钥(重新验证)。它会这样做,但 Android 之后会关闭连接而不是接受(没有错误消息)。

以上是关于Android 蓝牙:服务发现失败,连接到台式机/笔记本电脑的主要内容,如果未能解决你的问题,请参考以下文章

Android 蓝牙 API 连接到多个设备

当尝试连接到蓝牙android时,应用程序崩溃

无法连接到android上的蓝牙套接字

Android Developer -- Bluetooth篇 概述

Android 蓝牙实例

Android 蓝牙低功耗配对