如何通过 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 应用程序中标签元素的文本值更改?