例如,我有两个心率监视器与我的平板电脑配对。我使用这样的代码来获取人力资源管理设备的列表:
var devices = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync
(
GattDeviceService.GetDeviceSelectorFromUuid(GattServiceUuids.HeartRate)
);然后,我在GUI中显示一个列表框,其中包含从devicesi.Name获取的设备名称。例如,我选择索引为0的设备。然后,我可以访问它的人力资源服务和人力资源管理的特点:
var service = await GattDeviceService.FromIdAsync(devices[0].Id);
var characteristic = await service.GetCharacteristics(attCharacteristicUuids.HeartRateMeasurement);随着心率,我需要一个电池状态。如何访问相同设备(已选定的)的电池服务?
发布于 2016-11-01 09:23:50
在我们开始之前,有一些信息:
在扫描蓝牙设备之前,必须将蓝牙设备与计算机配对!
ListBox1.Items.Clear();
var devices = await DeviceInformation.FindAllAsync(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.SerialPort));
foreach (var device in devices)
{
ListBox1.Items.Add(device);
}如果您想知道蓝牙设备的电池寿命:
How to get the battery level after connect to the BLE device?
要同时访问多个服务,需要“重新连接”到设备:
设备A只能一次连接到设备B上的服务S。设备A可以同时连接到设备B、C、D和E等上的服务S。
来源:Establishing multiple bluetooth SPPs at the same time
但是不要与方法GetAllIncludedServices();混淆,因为它确实返回了“包含的服务”。在an other question上有一个答案
您可能不想得到“包含的服务”。包含的服务是BLE中的一个特殊概念,我怀疑您是否使用它来连接一个服务和另一个服务。
https://stackoverflow.com/questions/40356799
复制相似问题