HTC Wildfire未显示蓝牙服务名称

时间:2010-11-25 20:54:15

标签: android bluetooth

我正在开发一款需要为其他设备提供Bluetooth ServerSocket的应用。 我必须使用的设备建立连接,忽略uuid,只查找具有正确服务名称的设备。

我使用以下命令打开BluetoothServerSocket:

UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
tmp = mBluetoothAdapter.listenUsingRfcommWithServiceRecord("PWAccesP", uuid);

我的问题是,Android SDP不会发布ServiceName。当我使用sdptool查询可用服务时,我得到以下输出:

...

Service RecHandle: 0x10008
Service Class ID List:
  UUID 128: 00001101-0000-1000-8000-00805F9B34FB
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
Channel: 6

因此服务可用,但未列出服务名称,因此我的设备无法连接。

我正在使用Android 2.1的HTC Wildfire。

我现在的问题是,这是HTC蓝牙堆栈的问题,它是Wildfire的问题还是Android 2.1的问题?

不幸的是我没有其他手机可以查看,所以我要求社区帮助我...这有没有人遇到过这个或者知道如何让服务名出现?

顺便说一下: 我能够验证BluetoothSocketServer使用通过uuid而不是服务名称连接的其他设备进行连接。

谢谢和问候, 迈克尔

4 个答案:

答案 0 :(得分:0)

将我的Wildfire设备更新到Android 2.2后,蓝牙服务名称现已正确连接。如果修复来自蓝牙堆栈或Android 2.2我不清楚,但无关紧要,因为它正在工作......

答案 1 :(得分:0)

尝试使用2.2上的Wildfire上的PWAccessP设备(以及sdptool中正确显示的服务名称)进行更多工作。不幸的是,我也无法建立与设备的连接。

我这里有两个不同的PWAccessP设备,两者都没有连接到Wildfire。

此外,我尝试使用我找到的服务器套接字perl脚本将它们连接到我的笔记本电脑。我能够使用第三台设备连接到我的笔记本电脑,但PWAccessP没有。我的BT经理显示了一个简短的活动,但我猜这只是sdp部分,但没有建立配对/连接。

但是,我有一个正在运行的Blackberry应用程序,它成功地与PWAccessP设备合作,因此必须以某种方式实现。 (我有源代码,但它并没有真正帮助Android ...)

如果有人找到解决此问题的方法,请告诉我们。

此致 迈克尔

答案 2 :(得分:0)

我怀疑问题在于Android下面的特定硬件,因为至少有一些Android手机可以使用这些设备(例如Motorola Droid)。

有人试过放弃Android API并只使用Java和JSR-82(蓝牙扩展)来从Android上的这些设备接收数据吗?这可能与Android API不同,并且可能只是起作用......

答案 3 :(得分:0)

来自我方的最终答案(如果其他人仍在努力):

我现在在使用Android 2.3.x的Nexus S上尝试过,我终于能够连接PWAccessP设备了。花了我一些时间配对,手机必须始终可见,但至少我让它工作。

此致 迈克尔