Android 如何在蓝牙中获取相应UUID的服务名称?

Android 如何在蓝牙中获取相应UUID的服务名称?,android,bluetooth,bluetooth-lowenergy,uuid,Android,Bluetooth,Bluetooth Lowenergy,Uuid,我正在开发一个蓝牙应用程序,我需要获取特定客户端蓝牙设备提供的服务的名称。我使用以下代码来获取UUID 代码片段: if(BluetoothDevice.ACTION_UUID.equals(action)) { BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); Parcelable[] uuidExtra = intent.getParcelableAr

我正在开发一个蓝牙应用程序,我需要获取特定客户端蓝牙设备提供的服务的名称。我使用以下代码来获取UUID

代码片段:

 if(BluetoothDevice.ACTION_UUID.equals(action)) 
 {
 BluetoothDevice device =       intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
 Parcelable[] uuidExtra =    intent.getParcelableArrayExtra(BluetoothDevice.EXTRA_UUID);
 for (int i = 0; i < uuidExtra.length; i++) {
String abc=uuidExtra[i].toString());
 }
 }
if(BluetoothDevice.ACTION_UUID.equals(ACTION))
{
BluetoothDevice=intent.getParcelableExtra(BluetoothDevice.EXTRA\u设备);
Parcelable[]uuidExtra=intent.getParcelableArrayExtra(蓝牙设备.EXTRA\UUID);
for(int i=0;i
我获取uuid值,例如“000011000-0000-1000-8000-00805F9B34FB”,但我需要其相应的服务名称,如下所示

BrowseGroupDescriptorServiceClassID=00001001-0000-1000-8000-00805F9B34FB
PublicBrowseGroupServiceClass=00001002-0000-1000-8000-00805F9B34FB

您可以找到16位UUID的列表。它们都是128位的。你只需要检查GATT规范。唯一剩下的就是用UUID映射名称,这可能需要你自己编写。

顺便说一句,它与iOS开发不同,我们无法通过android公共api(UUID除外)在连接时获得
服务名称
特征名称
,因此如果
我们希望将自己的
服务\u name
特性\u name
扩展到远程蓝牙硬件中。我们无法直接获取目标Characteristics\u name(例如,
Characteristics.getUUIDName()
)(仍然使用映射添加我自己的Characteristics\u uuid不可互换)

,因此您的意思是没有特定的语法来映射名称@moryniczYou是指将UUID转换为人类可读字符串的神奇内置方法?我对此表示怀疑。但是你可以查看android文档。