我正在为Windows 10和Xbox One设备上的可用性开发UWP(通用Windows平台)应用程序。该应用程序是一个single user application。我试图在运行时确定活动登录用户的唯一标识符 - 只是一个没有任何个人身份信息的ID。 StoreContext class的文档建议我应该能够通过检查User
属性来确定这个缺省的StoreContext
对象;具体而言,NonRoamableId
属性似乎是合适的。但是,在任何情况下,我都运行了应用程序(调试,部署,Windows,Xbox),StoreContext的User
属性始终为null
。这是预期的吗?我无法找到任何其他方式来确定此信息。StoreContext用户属性在单用户UWP应用程序中始终为空
注意:我知道UserWatcher类及其在系统上查询用户的方法。然而,我想避免使用此的原因如下:
- 通过使用这些查询方法暴露于该应用的性质不足以确定哪个
User
是与当前StoreContext
相关联的一个,这意味着,这样的解决方案将容易出错。 - 以这种方式查询用户信息会导致权限弹出,这对于应用程序是否需要读取个人身份信息是有意义的,但由于我只是寻找一个程序化的唯一标识符,所以看起来并不像它应该是必要的。
我正在针对Windows 10 Creators的更新SDK(10.0.15063)进行开发。
编辑2017年11月16日
这看起来可能是一个UWP错误,现在是固定的。无需更改代码,我现在可以在应用启动时看到一个非空User
对象附加到LaunchActivatedEventArgs
。相应地接受了答案。
您需要关注[this](https://docs.microsoft.com/en-au/windows/uwp/monetize/in-app-purchases-and-trials#testing)才能正常工作。确保您已完成“将应用程序与商店关联”,并且您只需从商店下载应用程序一次即可安装有效的许可证。一旦安装完成,您可以从VS调试您的应用程序,并且用户不会使用此时的数据填充。 –
谢谢,贾斯汀。不幸的是,在这种情况下,我确信我已经完成了这些说明 - 所有其他StoreContext调用都正常工作(包括相关产品查找,试用许可激活等)。 –
嗯,有趣。我想知道,您的测试帐户是否为MSFT帐户?此外,它可能是因为*“当没有特定用户上下文激活多用户应用程序时,此属性返回null”*。请参见[this](https://docs.microsoft.com/en-us/uwp/api/windows.applicationmodel.activation.launchactivatedeventargs)。 –