我正在开发一款适用于 UWP(通用 Windows 平台)的应用程序,可在 Windows 10 和 Xbox One 设备上使用。该应用程序是 single user application .我试图在运行时确定事件登录用户的唯一标识符——只是一个没有任何个人身份信息的 ID。 StoreContext class 的文档建议我应该能够通过检查默认 StoreContext
对象上的 User
属性来确定这一点;具体来说,NonRoamableId
属性似乎是合适的。但是,在我运行应用程序的每个上下文中(调试、部署、Windows、Xbox),StoreContext 的 User
属性始终为 null
。这是预期的吗?我找不到任何其他方法来确定此信息。
注意:我知道 UserWatcher类及其查询系统用户的方法。但是,出于以下原因,我想避免使用它:
- 通过使用这些查询方法向应用公开的属性不足以确定哪个
User
是与当前StoreContext
关联的用户,这意味着这样的解决方案将是容易出错。 - 以这种方式查询用户信息会导致权限弹出窗口,如果应用程序需要读取个人身份信息,这是有意义的,但由于我只是在寻找一个程序化的唯一标识符,所以这看起来不像应该是必要的。
我正在针对 Windows 10 创意者更新 SDK (10.0.15063) 进行开发。
编辑 11/16/2017
这看起来可能是 UWP 错误,现在已修复。在没有更改代码的情况下,我现在在应用启动时看到一个非空的 User
对象附加到 LaunchActivatedEventArgs
。相应地接受了答案。
最佳答案
可以从 OnLaunched/Activated 事件参数中获取使用 MS 帐户登录的事件用户。
protected override void OnLaunched(LaunchActivatedEventArgs e)
{
Windows.System.User active_user = e.User;
}
这需要在程序包 list 中添加用户帐户信息 功能。
关于uwp - StoreContext 用户属性在单用户 UWP 应用程序中始终为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45720518/