例如,我的平板电脑上有两个心率监测器。我正在使用这样的代码来获取HRM设备列表:
var devices = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync
(
GattDeviceService.GetDeviceSelectorFromUuid(GattServiceUuids.HeartRate)
);
然后我在GUI中显示一个列表框,其中包含来自devices[I]. name的设备名称。例如,我选择索引为0的设备。然后我可以访问它人力资源服务和人力资源管理特性:
var service = await GattDeviceService.FromIdAsync(devices[0].Id);
var characteristic = await service.GetCharacteristics(attCharacteristicUuids.HeartRateMeasurement);
除了心率,我还需要电池状态。我如何使用同一(已选定)装置的电池服务?
在我们开始之前的一些信息:
你做必须配对您的蓝牙设备与您的计算机,在你可以扫描他们!
列出您的配对设备:
ListBox1.Items.Clear();
var devices = await DeviceInformation.FindAllAsync(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.SerialPort));
foreach (var device in devices)
{
ListBox1.Items.Add(device);
}
如果你想知道蓝牙设备的电池寿命:
连接BLE设备后如何获取电池电量?
要同时访问多个服务,您需要"reconnect"到设备:
设备A只能同时接入设备B上的业务S。设备A可以同时接入设备B、C、D、E等设备上的业务S。
@alanjmcf
来源:同时建立多个蓝牙spp
但是不要与方法GetAllIncludedServices();
混淆,因为它确实返回"包含的服务"。正如另一个问题的一个答案所述:
你可能不想要"包含的服务"。包含服务是BLE中的一个特殊概念,我怀疑你是否正在使用它,它用于将一个服务与另一个服务链接起来。
@Emil