从BLE设备获取Uuids

时间:2015-12-11 14:44:15

标签: c# android xamarin bluetooth-lowenergy

我想通过以下代码从我发现的BLE设备中获取所有Uuids:

public class DiscoverLe : ScanCallback
{
   public DiscoverLe()
   {
   }

   public override void OnScanResult([GeneratedEnum] ScanCallbackType callbackType, ScanResult result)
   {
      base.OnScanResult(callbackType, result);                
      ScanRecord oScanRecord = result.ScanRecord;
      byte[] oByteArray =  result.ScanRecord.GetManufacturerSpecificData(76);                          
   }
}

有人可以解释一下如何做到这一点吗?

1 个答案:

答案 0 :(得分:0)

我强烈建议您阅读蓝牙4.0版规范。如果您指的是服务和特性的 UUID ,遗憾的是,如果不连接到远程设备并启动服务发现过程,您就无法执行此操作。 BLE广告数据最多可容纳31个字节的数据。请阅读以下link并了解BLE广告包的结构。您发现的远程BLE设备可能包含一些服务UUID数据(UUID可以是2个字节或8个字节。因此,不要期望看到所有服务UUID)。供应商的选择是将服务UUID包含在广告包中还是不包括在广告包中。但是,如果不建立BLE连接和执行服务发现,您将永远无法获得特征UUID信息。