有没有API来启用/禁用Windows 8.1上的蓝牙?

在Windows 8 / 8.1中,现在可以通过操作系统本身启用/禁用蓝牙(参见下图)。 这是真棒,因为它是设备/驱动程序不可知的。

在Android上,这可以通过BluetoothAdapter.enable()和BluetoothAdapter.disable()来实现 ,但是我一直没能在Windows上find任何可以做到这一点的东西(尽pipe看起来确实是这样)。

所以我试过使用:

  • BluetoothEnableIncomingConnections() – 但是,这只能阻止新的传入连接。 它不禁用现有的。
  • devcon.exe – 这个方法的问题是A.它是一个不可再分发的二进制B.它要求你提前知道他的设备ID(所以它不是设备/驱动程序不可知的)。 另外,虽然它不是一个破坏者,它不会需要提升。
  • UI自动化 – 简单地启动PC设置应用程序,并通过键盘事件来切换开关很容易,但是在适当的编码实践和用户体验方面,这是非常难看的。 这就是说,这是我发现实现我到目前为止的行为的唯一途径。

蓝牙切换开关

我正在用C ++编写一个原生的Win32应用程序,所以我不受限于任何Windows应用程序的应用程序需求,但是,如果有一个不需要提升的方法,那将是非常好的。

TL; DR

是否有任何API,WMI接口或其他任何可用的function来实现function上等效的结果来翻转蓝牙拨动开关? 如果没有,有没有其他方法可以产生类似的结果?

在win8.1中,您应该可以调用BluetoothEnableRadio来启用/禁用本地收音机。

基本上制造商应该包括一个方法来完成这个,所以你不必加载DLL。

从Windows 8.1开始,供应商不再需要在本主题中描述的软件DLL中实现无线电开/关功能(用于蓝牙4.0无线电),因为操作系统现在处理此功能,Windows 8.1将忽略任何这样的DLL,即使存在“。

看看这个链接,谈论它: http : //msdn.microsoft.com/en-us/library/windows/hardware/hh450832%28v=vs.85%29.aspx