UWP开发教程之通过Radio控制蓝牙和wifi

在Windows 10以前,想要控制Bluetooth,WiFi等功能,那麻烦大了。得操作ManagementBaseObject,ManagementEventWatcher 等一系列WMI提供的API,写出来的代码又臭又长。其间还夹着复杂的WMI query字符串,十分难用。

升级到Windows 10后,我们通过Windows.Devices.Radios.Radio可以方便的获取控制Bluetooth和WiFi的对象。

var radios = await Radio.GetRadiosAsync();
Bluetooth = radios.FirstOrDefault(r => r.Kind == RadioKind.Bluetooth);
WiFi = radios.FirstOrDefault(r => r.Kind == RadioKind.Bluetooth);

在拿到上面的Bluetooth和WiFi的Radio实例后,就可以通过

Public event TypedEventHandler<Radio, object> StateChanged;

来监听Radio实例的状态改变,可以说通过寥寥几行代码,就可以替代以往大量繁琐的操作。

而设置Bluetooth和WiFi设备On/Off的状态,也非常简单。

public IAsyncOperation<RadioAccessStatus> SetStateAsync(RadioState value);

RadioState枚举如同字面的意思:

 

    public enum RadioState
    {
        //
        // Summary:
        //     The radio state is unknown, or the radio is in a bad or uncontrollable state.
        Unknown = 0,
        //
        // Summary:
        //     The radio is powered on.
        On = 1,
        //
        // Summary:
        //     The radio is powered off.
        Off = 2,
        //
        // Summary:
        //     The radio is powered off and disabled by the device firmware or a hardware switch
        //     on the device.
        Disabled = 3
    }

这里需要提一下的是,在第一次更改状态前,UWP APP需要向用户申请权限。

貌似忘记给UWP APP向Windows要权限了,我们要编辑Package.aaxmanifest文件,在Capabilities节点加上DeviceCapability这一行才行。

  <Capabilities>
    <Capability Name="internetClient" />
    <DeviceCapability Name="radios"></DeviceCapability>
  </Capabilities>

 

这回运行起来,才真的可以操作Bluetooth和WiFi了。

是不是觉得几行代码就能写出一个控制Bluetooth和WiFi的APP了?事实也确实如此。

如果人生只如初见那般美好,UWP的处境就不会如此难堪了。对于某软提供了完善UWP API的功能,开发起来那是一个爽快。但要是没有或是没来得及提供,UWP就显得颇为尴尬了。

我们不妨看下RadioKind的枚举,很显然如果想操作FM radio就得另寻他法。而MobileBoardband即Cellular也是从1703版本才开始得到支持。

 

那是不是意味这MobileBroadband就可以像Bluetooth和WiFi一样通过

public static IAsyncOperation<IReadOnlyList<Radio>> GetRadiosAsync();

来获取实例对象了,还真不是,欲知如何操作,且听下回《UWP开发入门(26)——通过Radio控制Cellular》。

实际是我Sample code还没整理好。所以分成了两篇来写。

有感日前MS Store里的网易云音乐UWP也被替换成Win32版本,可叹国产的UWP APP越来越少。某软画了个好饼,可惜不能让人在Windows生态上通过UWP挣到钱。好技术生不逢时出不了头,真是可惜。

同时也能感觉到某软的妥协和进步,现如今的UWP,结合desktop extension以及desktop bridge技术。只要公司的APP能通过某软的审核,功能方面已经无限接近传统desktop APP了。可惜一个Windows平台做Win32和UWP两个产品,烧的钱可不是小数目。总不能用爱发电吧。

阿里云参考资料:

https://www.aliyun.com/ss/MjAyMOWGkumZqeWym-engeacjemCo-S4quS6uuWkmiBRUee-pDo4NTQwNzE0MDM/1_a
https://www.aliyun.com/ss/MjAyMOWGkumZqeWym-engeacjeaXoOW7tui_nyBRUee-pDo4NTQwNzE0MDM/1_a
https://www.aliyun.com/ss/MjAyMOWGkumZqeWym-engeacjeS4i-i9vSBRUee-pDo4NTQwNzE0MDM/1_a
https://www.aliyun.com/ss/MjAyMOWGkumZqeWym-engeacjeS4gOadoem-mSBRUee-pDo4NTQwNzE0MDM/1_a
https://www.aliyun.com/ss/MjAyMOW5tOWGkumZqeWym-e-juWbveengeacjSBRUee-pDo4NTQwNzE0MDM/1_a
https://www.aliyun.com/ss/MjAyMOW5tOWGkumZqeWym-engeacjSBRUee-pDo4NTQwNzE0MDM/1_a
https://www.aliyun.com/ss/MjAyMOW5tOWGkumZqeWym-engeacjeWTquS4quWlvSBRUee-pDo4NTQwNzE0MDM/1_a
https://www.aliyun.com/ss/MjAyMOW5tOWGkumZqeWym-engeacjee9keermSBRUee-pDo4NTQwNzE0MDM/1_a
https://www.aliyun.com/ss/MjAyMOW5tOS6uuWkmueahOengeacjeWGkumZqeWymyBRUee-pDo4NTQwNzE0MDM/1_a
https://www.aliyun.com/ss/MjAyMOW5tOacgOWkp-eahOWGkumZqeWym-engeacjSBRUee-pDo4NTQwNzE0MDM/1_a
https://www.aliyun.com/ss/MjAyMOengeacjeWGkumZqeWymyBRUee-pDo4NTQwNzE0MDM/1_a

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值