联博以太坊高度:UWP开发入门(25)——通过Radio控制Bluetooth, WiFi

admin 4个月前 (06-21) 科技 44 1

回首写了许久的UWP开发入门,竟然没有讲过通过Windows.Devices.Radios.Radio来控制Bluetooth和WiFi等功效的开关。也许是因为相关的API设计的简朴好用,以至于被我给忽略了。最近事情中有涉及这块的内容,不妨一起来回首下,顺便看看一些新的发现。

在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两个产物,烧的钱可不是小数目。总不能用爱发电吧。

希望Win7早日被镌汰,WinUI 3.0能进一步融合UWP和Win32。距离上一次某软说要重振desktop开发已经已往蛮久了。

本篇提到的相关Sample code在GitHub:

https://github.com/manupstairs/UWPSamples/tree/master/UWPSamples/RadioDevice

 



 

,

Allbet

www.zhu-tie-guan.com欢迎进入欧博平台(Allbet Gaming),欧博平台开放欧博(Allbet)开户、欧博(Allbet)代理开户、欧博(Allbet)电脑客户端、欧博(Allbet)APP下载等业务。

Allbet声明:该文看法仅代表作者自己,与本平台无关。转载请注明:联博以太坊高度:UWP开发入门(25)——通过Radio控制Bluetooth, WiFi

网友评论

  • (*)

最新评论

  • 欧博亚洲电脑版下载 2020-06-21 00:00:53 回复

    AllbetGmaing电脑版下载欢迎进入AllbetGmaing电脑版下载(www.aLLbetgame.us):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。我词穷了,反正很好

    1

站点信息

  • 文章总数:437
  • 页面总数:0
  • 分类总数:8
  • 标签总数:970
  • 评论总数:117
  • 浏览总数:3358