可以说这是一项非常简单的任务,但我还没有找到令人满意的解决方案。我已经尝试过(通过蓝牙连接的扬声器播放音乐,以真正了解收音机的状态):
我不相信微软会如此无知,不提供这样的命令...
在放弃寻找现成的解决方案后,我发现通用 Windows 平台应用程序可以访问 radio control API 。
于是,我将一个无线电控制应用程序示例与一个命令行控制应用程序合并,结果就是:https://github.com/peci1/RadioControl 。它已发布于 Windows 应用商店。
一般来说,不可能让应用程序在后台运行,因此您需要先启动图形用户界面,然后再通过命令行调用它,例如
radiocontrol.exe 0 on
radiocontrol.exe Bluetooth off
该程序需要的核心功能有
using Windows.Devices.Radios;
await Radio.RequestAccessAsync();
var radios = await Radio.GetRadiosAsync();
await radios[0].SetStateAsync(RadioState.On);
然后,您还需要在应用程序清单中添加无线电功能:
<DeviceCapability Name="radios" />
为了允许通过命令行进行控制,您需要覆盖 App.xaml.cs 中的方法 "protected override async void OnActivated(IActivatedEventArgs args)",并在类似这样的分支中进行处理:
switch (args.Kind)
{
case ActivationKind.CommandLineLaunch:
从命令提示符(以管理员身份)中执行以下命令就可以了:
netsh interface set interface name="Bluetooth Network Connection" admin=disabled
我之前曾用同样的命令禁用过 Wi-Fi 适配器,发现它也能禁用控制面板中的其他适配器:控制面板> 网络和互联网> 网络连接。只需将"name"参数改为适配器名称即可。你还可以将最后一个参数改为 admin=enabled
,从而再次启用它。