Windows 10 应用-物联网系统管理能力

Windows 10 Application - iot systemManagement capability

我们有 Windows 10 个应用程序,我们正在尝试更改系统上的时区。

我找到了有关将 IOT 扩展包含到项目中的文档,这将提供基本的系统管理功能。

https://msdn.microsoft.com/en-us/windows/uwp/packaging/app-capability-declarations

https://msdn.microsoft.com/en-us/library/windows/apps/windows.system.timezonesettings.changetimezonebydisplayname

到目前为止,我无法获得执行任何操作(重启系统、更改时区等)的权限,总是出现身份验证异常。

这是我试过的:

清单(重要部分):

<Package
  xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
  xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
  xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
  xmlns:iot="http://schemas.microsoft.com/appx/manifest/iot/windows10"
  IgnorableNamespaces="uap mp iot">

<Dependencies>
    <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.10586.0" MaxVersionTested="10.0.10586.0" />
    <TargetDeviceFamily Name="Windows.IoT" MinVersion="10.0.10586.0" MaxVersionTested="10.0.10586.0" />
  </Dependencies>

 <Capabilities>
    <iot:Capability Name="systemManagement" />  
  </Capabilities>
</Package>

代码:

 Boolean canChange = Windows.System.TimeZoneSettings.CanChangeTimeZone;
 Windows.System.TimeZoneSettings.ChangeTimeZoneByDisplayName("(UTC+13:00) Samoa");

对 IOT 的引用已添加到项目中

物联网:正如杰基所说: "Not sure it'll work out. But the point is IoT extension are only meant for windows IoT devices"

不过,我确实找到了解决方法...

如果其他人遇到这个问题。

我有 运行 一个可以访问系统设置的本地轻量级 NancyFX Web 服务。从 UWP 应用程序,我将以这种方式进行 api 调用和更改系统设置。

参见 http://nancyfx.org/ 和自托管示例

此外,如果从边缘调用本地主机,您将需要设置环回应用程序异常,请参阅https://loopback.codeplex.com/ and https://msdn.microsoft.com/en-us/library/windows/apps/hh780593.aspx

在那之后几乎一切正常。

旧威胁,但当我搜索此 IoT 系统管理清单的解决方案时,我无意中遇到了这个问题。我使用 VS2017。我的解决方法是 手动查看代码包清单。然后添加这一行

<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" 
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" 
xmlns:uap4="http://schemas.microsoft.com/appx/manifest/uap/windows10/4" 
xmlns:iot="http://schemas.microsoft.com/appx/manifest/iot/windows10" IgnorableNamespaces="uap mp uap4 iot">

<Capabilities>
    <iot:Capability Name="systemManagement"/> 
<Capabilities>

*请记住,您只能声明 1 个功能,因此如果您声明了,只需添加新的。

然后使用此代码在清单中添加功能

然后去添加引用->扩展select Windows UWP 版本 10.0.10586.0 的 IoT 扩展 *即使你有更新的版本也必须 select 这个才能工作。