我正在开发蓝牙应用程序,我需要获取特定客户端蓝牙设备提供的服务的名称。我使用以下代码来获取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
答案 0 :(得分:0)
On Bluetooth.com你可以找到16位UUID的列表。它们都是transformable到128位的。您只需要查看GATT规范。唯一剩下的就是用UUID映射名称,您可能需要自己编写。
答案 1 :(得分:0)
顺便说一句,它与iOS dev不同,我们在连接时无法通过android public api(除了uuid)获得service_name
或charactistics_name
,所以如果
我们希望在远程蓝牙硬件中将service_name
或charactistics_name
扩展到blutetooth SIG defined以外的地方。我们无法直接获取目标charactistics_name(例如charactistics.getUUIDName()
)(仍使用映射添加自己charactistics_uuid不可互换)