我想通过蓝牙连接3台设备。
例如我使用BluetoothChat。所以我理解我应该为这些设备使用不同的UUID。我一直试图通过这样的UUID = 766c82f0-e1b4-11df-85ca-0800200c9a66连接,我从Web UUID生成器得到它。但它根本不起作用。
如果我使用UUID = 00001101-0000-1000-8000-00805F9B34FB,我已成功连接(对1个设备)
我在哪里可以获得UUID?
答案 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地址。