首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从同一设备访问两个不同的服务

如何从同一设备访问两个不同的服务
EN

Stack Overflow用户
提问于 2016-11-01 08:56:49
回答 1查看 760关注 0票数 1

例如,我有两个心率监视器与我的平板电脑配对。我使用这样的代码来获取人力资源管理设备的列表:

代码语言:javascript
运行
复制
var devices = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync
(
    GattDeviceService.GetDeviceSelectorFromUuid(GattServiceUuids.HeartRate)
);

然后,我在GUI中显示一个列表框,其中包含从devicesi.Name获取的设备名称。例如,我选择索引为0的设备。然后,我可以访问它的人力资源服务和人力资源管理的特点:

代码语言:javascript
运行
复制
var service = await GattDeviceService.FromIdAsync(devices[0].Id);
var characteristic = await service.GetCharacteristics(attCharacteristicUuids.HeartRateMeasurement);

随着心率,我需要一个电池状态。如何访问相同设备(已选定的)的电池服务?

EN

回答 1

Stack Overflow用户

发布于 2016-11-01 09:23:50

在我们开始之前,有一些信息:

在扫描蓝牙设备之前,必须将蓝牙设备与计算机配对!

Listing your paired devices

代码语言:javascript
运行
复制
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。

@alanjmcf

来源:Establishing multiple bluetooth SPPs at the same time

但是不要与方法GetAllIncludedServices();混淆,因为它确实返回了“包含的服务”。在an other question上有一个答案

您可能不想得到“包含的服务”。包含的服务是BLE中的一个特殊概念,我怀疑您是否使用它来连接一个服务和另一个服务。

@Emil

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40356799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档