Android 无法发现蓝牙设备

Android 无法发现蓝牙设备,android,bluetooth,Android,Bluetooth,我想在Android手机和远程设备之间建立蓝牙通信。远程设备的类别是基本的,只是一个简单的蓝牙适配器。当我使用蓝牙扫描设备功能时,手机会识别不同类别的设备(如电脑、手机、蓝牙耳机),但不会识别此设备。 我在三星Galaxy Theos和HTC Wildfire上试用了Android 2.1,但两者的效果都一样。 手机制造商或安卓系统是否可能过滤某些类别的设备?否则,是否有其他方法使此设备可被发现 提前谢谢 lorenth好的,在网络上做了一些研究之后,对于那些想在Android上开发蓝牙应用程序

我想在Android手机和远程设备之间建立蓝牙通信。远程设备的类别是基本的,只是一个简单的蓝牙适配器。当我使用蓝牙扫描设备功能时,手机会识别不同类别的设备(如电脑、手机、蓝牙耳机),但不会识别此设备。 我在三星Galaxy Theos和HTC Wildfire上试用了Android 2.1,但两者的效果都一样。 手机制造商或安卓系统是否可能过滤某些类别的设备?否则,是否有其他方法使此设备可被发现

提前谢谢


lorenth

好的,在网络上做了一些研究之后,对于那些想在Android上开发蓝牙应用程序(在2.1 Eclair上测试,我不知道是否有其他版本)的人来说,似乎有些手机制造商决定忽略任何宣称自己是0×00级且不允许连接的蓝牙设备,在discovery上激发意向,甚至在bluetooth设置页面上列出。下面是Eclipse的LogCat部分中调试模式下的情况

DTUN_HCID Device [00:09:EF:58:04:38] class is 0x00 -  skip it
我在三星Galaxy 3 teos和HTC Wildfire上试过。显然它在NexusOne上运行良好。可惜谷歌停止了销售。如果你们中的一些人在其他手机上进行了测试,并且可以正常工作,请告诉我们


Lorenth

我在一些不同风格的Android上测试了与串行(0x00级)设备的蓝牙连接,结果如下:

安卓2.1(橙色或O2,记不得了):配对ok 运行安卓2.2的东芝上网本:正常 HTC Desire、沃达丰、安卓2.2:无法发现设备 HTC Desire HD、沃达丰、安卓2.2:无法发现设备

因此,一些电话公司很可能已经阻止了0x00访问。我与沃达丰保持联系,以便a)获得澄清,b)如果可能的话,说服他们解决这个问题。如果我有什么有用的东西,我会发帖的

David

更新:此解决方案依赖于从应用程序中读取logcat的访问权限,因此在现代版本的Android(>约3.0)上不起作用。如果有人正在使用Android v2.x,请在此处留下更新的链接

假设您正在为手机编写应用程序,我已经编写了一个类来解决此问题:


我可以确认LG Optimus One和三星Galaxy S(均为安卓2.2)都存在此问题。我已经就此事联系了LG和三星,并将发回我听到的任何结果

我能够解决这个问题,不是通过改变Android端的东西,而是通过改变蓝牙适配器的类别。我知道这并不能解决0x00类设备被阻止的原始问题,但至少你可以在android上使用BT串行设备,尽管存在bug

我从ebay(此处链接:)购买了一个蓝牙串行转换器,正如预期的那样,我的HTC Desire在其默认配置中无法识别该转换器

我不想尝试上面提到的Zorn软件的应用程序,因为有些人报告说它弄乱了他们的HTC手机。相反,我从BT设备的AT命令数据表中发现,除其他参数外,您可以使用UART连接和终端程序更改设备的类号

我花了一段时间才明白,您不能使用蓝牙串行连接访问配置接口,但必须使用设备上的物理RX和TX引脚。您还需要将名为“Key”的pin连接到Vcc以激活命令模式。因此,我使用AVR串行编程设备的RS232到UART接口连接到RX/TX引脚,并使用Realterm作为终端程序。这让AT命令接口在我有了正确的波特率38400,并交换了我最初连接错误的RX和TX导线后工作

我用的是发电机 为了获得一个有效的非零类编号(我使用了object transfer/computer/desktop workstation,总数为0x100104),并使用命令将其输入设备

at+class=100104\r\n

其中\r\n表示输入(请参见数据表)

在关闭BT适配器、断开“钥匙”插脚并再次打开后,我能够以正常方式将其与手机配对。数据传输也起了作用。我再次使用AVR程序员的UART和Realterm向适配器的RX/TX引脚发送一些数据(ASCII格式的Hello World消息)。在Android端,我使用应用程序SENA Bterm来接收数据


我希望这有助于人们用手机和嵌入式系统做一些有趣的事情。

您是否检查过您的远程设备是否可被发现?我过去使用蓝牙耳机时遇到过问题;它只需要按下正确的按钮就可以让公众看到。嗨,多尔西,谢谢你回复我。这个没有按钮。这是一个非常基本的蓝牙适配器,由RJ45电缆供电。绿灯表示通电,因此其他设备可以看到。事实上,我以前试过一款嵌入J2ME的诺基亚3109,它可以毫无问题地识别出远程设备。所以我认为问题不是来自远程设备。谢谢你的帮助其他人有什么想法吗?你能给我们指一下你正在使用的适配器吗?如果是商业适配器的话?谢谢你回复我丹尼斯。它是一个蓝牙加密狗适配器,使用蓝牙串行端口模式进行通信。该设备不是商用设备。嗨,大卫。对不起,已经有一段时间了。谢谢你提供的信息。从上次起你有没有得到一些关于这件事的消息?嗨,邦格先生。好东西!感谢分享您的解决方案;)我没想到会这样做!事实上,我在Android上工作的时候是个新手。因此,我不得不改变我的蓝牙设备的类别,使其工作!无论如何,我很确定这不是一个真正的bug,因为它是在代码中显式编写的,以避免0x00类。我认为制造商在重写时遗漏了它