首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列出并启用WMI的禁用蓝牙服务?

列出并启用WMI的禁用蓝牙服务?
EN

Stack Overflow用户
提问于 2012-05-31 07:51:19
回答 1查看 2.2K关注 0票数 0

我目前正在寻找一种方法来列出远程蓝牙设备公开的服务并启用它们。

通常,我会使用WindowsAPI函数(或者更可能是已知的包装函数之一)来列出服务,并通过GUID (SetServiceEnable)启用它们。

问题是,设备正在使用相同的GUID!公开两个服务

因此,使用windowsAPI-函数只能启用其中一个服务。另一个服务无法启用。

我想也许WMI能做到这一点,但我对WMI还不熟悉,也找不到

Windows本身能够在servicemenu上同时启用任何服务或特定服务。

更新我想解决的问题是能够启用第一个或第二个服务。到目前为止,只有第一个服务(这通常是我需要的服务),但我无法找到启用第二个服务的解决方案(除了使用Windows )。

如果启用了这两个服务,我在devicemanager (SPP)中有两个Commports。

EN

回答 1

Stack Overflow用户

发布于 2012-07-02 08:22:14

因为我不能添加注释/问题(还没有堆叠溢出的特权)。这是我的最佳选择。

如果我理解正确,那么在服务记录中多次使用该服务是无效的,对吗?您能在蓝牙配对UI中右键单击设备并查看是否看到两个服务,并且可以通过Windows启用它们吗?一旦启用了它们,您是否在设备管理器(按连接查看)中看到设备管理器下的两个PNP dev节点,与您启用的两个服务的对应角色相反?(我不能尝试这个,因为我不知道我有两个相同的UUID的设备。)

您可能已经知道,在远程设备上启用服务时,实际上并不是通过Windows蓝牙API在远程设备上启用服务。您正在做的是告诉Windows中的核心蓝牙组件生成相应的相反的服务角色。(这就是BluetoothSetLocalServiceInfo所做的。)例如,如果远程设备支持A2DP接收器,则通过启用该服务,桌面上的蓝牙服务将为该设备注册一个A2DP源服务,该服务生成一个PNP,用于匹配要安装在该设备上的A2DP源驱动程序。通过禁用该服务,蓝牙服务将注销A2DP源devnode,移除PNP devnode (类似于拔出USB设备)。

根据您所看到的被复制的配置文件,在远程设备的同一个mac地址上有两个设备对象和驱动程序对象的实例可能是没有意义的。

我的回答(实际上没有回答您的问题)是检查这两个服务是否有效--在这种情况下,在桌面上启用这两个服务,并在您将要使用的桌面上启用驱动程序。例如,一束A2DP加上HFP将需要A2DP和HFP来同步某些行为,例如AVDTP挂起。根据实现和驱动程序的不同,它们可能不希望安装两个A2DP驱动程序实例,从而导致本地驱动程序的意外状态。

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

https://stackoverflow.com/questions/10829463

复制
相关文章

相似问题

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