2

我正在使用getUuids()来自我的 Android 应用程序的调用查询 Nexus One 的 UUID,我看到返回以下内容:

 0 th UUID found is 00001105-0000-1000-8000-00805f9b34fb
 1 th UUID found is 00001106-0000-1000-8000-00805f9b34fb
 2 th UUID found is 0000110a-0000-1000-8000-00805f9b34fb
 3 th UUID found is 0000110c-0000-1000-8000-00805f9b34fb
 4 th UUID found is 00001112-0000-1000-8000-00805f9b34fb
 5 th UUID found is 0000111f-0000-1000-8000-00805f9b34fb
 6 th UUID found is 0000112f-0000-1000-8000-00805f9b34fb
 7 th UUID found is 00001200-0000-1000-8000-00805f9b34fb

我的问题是:为什么我无法00001101-0000-1000-8000-00805f9b34fb在此列表中看到 SPP ( ) 的标准 UUID?

我已经测试过我能够使用 S2 蓝牙终端应用程序将串行数据从 android 设备(Xoom)发送到这款 Nexus One 手机。此数据传输中使用的是什么 UUID?

4

1 回答 1

1

S2 Bluetooth Terminal应用程序使用00001101-0000-1000-8000-00805F9B34FB硬编码(使用smali检查)。

请注意以下几点:

  • 查看getUuids() 的文档我注意到:

    此方法不会启动服务发现过程以从远程设备检索 UUID。而是返回服务 UUID 的本地缓存副本。如果需要新的 UUID,请使用 fetchUuidsWithSdp()。

    你试过fetchUuidsWithSdp()吗?

  • S2 Bluetooth Terminal,虽然有用,但并不是真正的 SDP 调试工具。就个人而言,我宁愿尝试使用BlueZ实用程序(或类似的工具,如果在 Windows 上 - 但我在这里推荐 Linux)来查看设备实际宣传的服务。这样,您就可以(至少)将问题缩小到其中一个设备。

    编辑:在 Windows 上,您可以使用蓝牙网络扫描仪

以下是如何使用 BlueZ 工具扫描服务的小示例(此示例使用 GPS 接收器):

czajnik@lapcio:~$ hcitool scan
Scanning ...
    00:1C:88:11:0E:CC   PENTA-GPS
czajnik@lapcio:~$ sdptool  browse 00:1C:88:11:0E:CC
Browsing 00:1C:88:11:0E:CC ...
Service Name: SPP Slave
Service RecHandle: 0x10000
Service Class ID List:
  "Serial Port" (0x1101)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 1
Language Base Attr List:
  code_ISO639: 0x656e
  encoding:    0x6a
  base_offset: 0x100
于 2012-10-09T07:36:52.787 回答