如何通过 UWP Xamarin 应用程序获取系统时间设置属性

Posted

技术标签:

【中文标题】如何通过 UWP Xamarin 应用程序获取系统时间设置属性【英文标题】:How to get system Time settings property through an UWP Xamarin application 【发布时间】:2020-10-17 18:14:46 【问题描述】:

我有一个 Xamarin 应用程序,我需要检查日期和时间设置是否启用了“自动设置”属性。

我需要验证当前日期和时间是否使用 NTP 时间?

图片-Type-ParameterStart property Normal Date seetings

通过注册表访问NTP的步骤如下(普通窗口非APP)

1- 按 Windows 徽标键 + R 打开“运行”框。键入 Regedit 并按 Enter。

2- 当注册表编辑器打开时,导航到以下键: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters 检查 Type 属性值是 NTP 还是 NoSync

3- 要在 Windows 10 中启用或禁用“自动设置时区”,请导航至以下键: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tzautoupdate

4- 双击右窗格中的 32 位 DWORD “开始”。如果要让 Windows 10 自动设置时区,请将其值数据设置为 3。如果要在 Windows 10 中禁用“自动设置时区”,只需将值设置为 4。

我需要通过 Xamarin UWP 应用验证 2 个或 3 个值,无论日期和时间设置是否设置为自动。

我附上截图 请参考此link,了解如何通过普通窗口获取日期和时间设置,我需要通过 Xamarin UWP 应用程序检查此设置。

如果已启用,我需要执行一项操作,否则我需要显示一个警报,显示“更改日期和时间设置并稍后重试”。

【问题讨论】:

【参考方案1】:

我需要通过 Xamarin UWP 应用验证 2 个或 3 个值, 日期和时间设置是否设置为自动。

实际上,我们无法在 UWP 平台内访问 Registry。 UWP 在沙箱中运行,它没有访问注册表的权限。但是我们可以使用通用 Windows 平台的 Windows 桌面扩展 来启动一个“runFullTrust”Win32 应用程序,该应用程序充当从注册表读取的后台进程。并使用 UWP AppService 将值传回。有关更多详细信息,您可以参考 stefanwick 的 UWP with Desktop Extension 博客。

如果您只想知道日期和时间设置是否设置为自动。

您可以使用LaunchUriAsync 方法启动ms-settings:dateandtime uri。然后检查自动设置时间是打开还是关闭。

bool result = await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings:dateandtime));

【讨论】:

以上是关于如何通过 UWP Xamarin 应用程序获取系统时间设置属性的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UWP 上使用 Xamarin.Forms 在平板电脑之间通过 WiFiDirect 发送视频

如何检测 xamarin UWP 应用程序中标签元素的文本值更改?

通过 Xamarin 在 UWP 上使用文本转语音

如何更改 Xamarin UWP 应用名称

如何在 Xamarin.UWP 应用程序中实现 LongPress?

Xamarin UWP 将字段名称获取到发件人