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

时间:2017-03-04 07:30:00

标签: android bluetooth bluetooth-lowenergy uuid

我正在开发蓝牙应用程序,我需要获取特定客户端蓝牙设备提供的服务的名称。我使用以下代码来获取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());
 }
 }

我得到了uuid值,例如&#34; 00001000-0000-1000-8000-00805F9B34FB&#34;但我需要相应的服务名称,如下所示。

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

顺便说一句,它与iOS dev不同,我们在连接时无法通过android public api(除了uuid)获得service_namecharactistics_name,所以如果  我们希望在远程蓝牙硬件中将service_namecharactistics_name扩展到blutetooth SIG defined以外的地方。我们无法直接获取目标charactistics_name(例如charactistics.getUUIDName())(仍使用映射添加自己charactistics_uuid不可互换)