Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android蓝牙哪里可以获取UUID?_Android_Bluetooth_Uuid - Fatal编程技术网

Android蓝牙哪里可以获取UUID?

Android蓝牙哪里可以获取UUID?,android,bluetooth,uuid,Android,Bluetooth,Uuid,我想通过蓝牙连接3台设备 例如,我使用BluetoothChat。所以我如何理解我应该为这个设备使用不同的UUID。我一直在尝试通过这样的UUID=766c82f0-e1b4-11df-85ca-0800200c9a66进行连接,这是我从Web UUID生成器获得的。但它根本不起作用 如果我使用UUID=00001101-0000-1000-8000-00805F9B34FB,我已成功连接(到1个设备) 我在哪里可以得到UUID 您必须对尝试连接的设备执行服务发现,获取它返回的UUID(该UUI

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

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

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


我在哪里可以得到UUID

您必须对尝试连接的设备执行服务发现,获取它返回的UUID(该UUID将对应于设备上运行并接受连接的服务)然后连接到它。

UUid用于唯一标识应用程序。每个应用程序都有一个唯一的UUid。因此,为每个设备使用相同的UUid

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

UUID可以从该链接获得

在这里,您需要了解每个目标设备中使用的蓝牙配置文件。您提到“UUID=00001101-0000-1000-8000-00805F9B34FB”是有效的

这是因为您的设备具有SPP蓝牙配置文件。SPP代表串行端口配置文件

您还可以查找Bluetoothdevice.getuuids

想象一下,你有一个或多个服务。每个服务都有自己的UUID。 UUID=000011101-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。 第二部分XXXXXXXXXX可以设置为您的服务器MAC地址,但不带“:”。
在客户端,u可以根据已知生成的唯一id(嵌入到应用程序中)和服务器MAC地址构造UUID,而不使用“:”。您可以在蓝牙设备发现过程中获取服务器MAC地址。

如果您使用linux或MAC,请在终端中输入“uuidgen”此命令(不带引号),您将获得一个唯一的UUID,在android项目中使用它。

您必须获取蓝牙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"/>

我觉得这很有帮助。请给出一个UUID的例子。我似乎不明白
UUID: 0000110f-0000-1000-8000-00805f9b12fb
UUID: 0000111d-0000-1000-8000-00805f9b12fb
UUID: 0000111a-0000-1000-8000-00805f9b12fb