Android蓝牙哪里可以获得UUID?

时间:2010-10-27 10:49:12

标签: android bluetooth uuid

我想通过蓝牙连接3台设备。

例如我使用BluetoothChat。所以我理解我应该为这些设备使用不同的UUID。我一直试图通过这样的UUID = 766c82f0-e1b4-11df-85ca-0800200c9a66连接,我从Web UUID生成器得到它。但它根本不起作用。

如果我使用UUID = 00001101-0000-1000-8000-00805F9B34FB,我已成功连接(对1个设备)

我在哪里可以获得UUID?

6 个答案:

答案 0 :(得分:7)

如果你使用的是linux或mac,请输入" uuidgen"这个命令在终端没有引号,你将获得一个唯一的UUID,在你的android项目中使用它。

答案 1 :(得分:2)

UUid用于唯一标识应用程序。每个应用程序都有一个唯一的uuid .so为每个设备使用相同的uuid

答案 2 :(得分:2)

要与目标设备连接,您需要知道连接的是什么。列出您的设备目标会更有帮助。

可以从此链接http://www.bluecove.org/bluecove/apidocs/javax/bluetooth/UUID.html

获取UUID

在这里,您需要知道每个目标设备中使用的蓝牙配置文件。你提到过" UUID = 00001101-0000-1000-8000-00805F9B34FB"的工作原理。

这是因为您的设备正在使用SPP蓝牙配置文件。 SPP代表串行端口配置文件。

您还可以在Bluetoothdevice.getuuids上查找 http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#getUuids()

答案 3 :(得分:2)

您必须获取蓝牙UUID以建立与设备的连接,

您可以使用反射调用方法getUuids()

    try {
    BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
    Method getUuidsMethod = BluetoothAdapter.class.getDeclaredMethod("getUuids", null);
    ParcelUuid[] uuids = (ParcelUuid[]) getUuidsMethod.invoke(adapter, null);

         if(uuids != null) {
             for (ParcelUuid uuid : uuids) {
                 Log.d(TAG, "UUID: " + uuid.getUuid().toString());
             }
         }else{
             Log.d(TAG, "Uuids not found, be sure to enable Bluetooth!");
         }

    } catch (NoSuchMethodException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    } catch (InvocationTargetException e) {
        e.printStackTrace();
    }

不要忘记添加权限:

   <uses-permission android:name="android.permission.BLUETOOTH"/>

你必须启用蓝牙来获取Uuids,例如:

UUID: 0000110f-0000-1000-8000-00805f9b12fb
UUID: 0000111d-0000-1000-8000-00805f9b12fb
UUID: 0000111a-0000-1000-8000-00805f9b12fb

答案 4 :(得分:0)

您必须使用您尝试连接的设备进行服务发现,获取它返回的UUID(这将与设备上运行的服务相对应并接受连接),然后连接到它。

答案 5 :(得分:0)

想象一下,你有一个或多个服务。每个服务都有自己的UUID。 UUID = 00001101-0000-1000-8000-00805F9B34FB是SPP的特殊之一。如果您未设置SPP UUID,某些设备(例如,蓝牙串行板)将无法工作。 但是对于Android设备(如智能手机)之间的点对点连接,您可以使用自己生成的UUID。 设备必须设置相同的UUID以便彼此找到并连接。 UUID格式:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx其中x = [0,...,9] | [A,...,F]。 好主意是将xxxxxxxx-xxxx-xxxx-xxxx-设置为您生成的唯一ID。 第二部分xxxxxxxxxxxx可以设置为您的服务器MAC地址而不是“:”。 在客户端,您可以从已知生成的唯一ID(嵌入到您的应用程序)和没有“:”的服务器MAC地址构造UUID。您可以在蓝牙设备发现期间获取服务器MAC地址。