2012-12-28 83 views
6

我最近开始在Android上使用蓝牙。 我想构建一个可以通过蓝牙读取传感器记录的数据的应用程序。Android查找特定蓝牙设备的UUID

我有一些示例代码,但看起来像我需要一个不同的device.It的另一个UUID是这样的:

private static final UUID MY_UUID = UUID 
       .fromString("00001101-0000-1000-8000-00805F9B34FB"); 

后来在代码中,将使用此UUID进行连接:

tmp = device.createRfcommSocketToServiceRecord(MY_UUID); 

我已经做了一些在线研究,像[这里] [1]。我想我需要一个不同的UUID号码用于我正在使用的新设备。我如何获得UUID号码?

在设备上,有许多两行说:

SN:1201L0023
BT:10:00:E8:C5:16:85

在此先感谢!

杰克

回答

11

UUID不绑定到特定设备。他们确定软件服务。 BT定义了一些用于定义配置文件的UUID。与您的示例一样,用于RFCOMM套接字的UUID是任意的。你只需要双方使用同一个。通常,设备连接然后使用服务发现协议来找出远程设备上支持哪些服务(UUID)。

+0

我觉得“00001101-0000-1000-8000-00805F9B34FB”是最常见的UUID(根据这里:http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#createRfcommSocketToServiceRecord% 28java.util.UUID%29)我不明白“你需要双方都使用同一个”。您如何确保手机(运行应用程序)和传感器(收集数据)具有相同的UUID?感谢您回复 –

+4

这是SPP(串行端口配置文件)的唯一UUID。如果您的传感器实现SPP,那么您使用该UUID。但是设备也可以不使用SPP就使用RFCOMM套接字,在这种情况下,UUID可能是任意的。您的答案应该在您的传感器文档中找到。 – TJD

+0

感谢您的帮助! –