【发布时间】:2017-12-12 08:18:53
【问题描述】:
我有一个非常简单的应用程序,它使用实时位置数据来获取相关信息,用 C# 作为 UWP 10.0 应用程序开发。
我与geolocation API的交互非常简单:我只在“Capabilities”下的“Package Manifest”中检查了Location,并且只使用了以下API调用:
var locator = new Windows.Devices.Geolocation.Geolocator();
var location = await locator.GetGeopositionAsync();
首次调用时,Windows 10 会弹出“允许此应用程序使用您的精确位置 [yes | no]”对话框。选择“是”似乎可以将该选择“保存”大约 5 分钟左右;在接下来的五分钟内获取用户位置的后续尝试通过(我相信他们返回缓存的值,因为它似乎永远不会改变),但超过 5 分钟后,权限对话框总是再次显示(即使用户已经授权)。
通过阅读 MSDN 上的地理定位 API 文档,我找不到任何表明这是预期行为的信息。在 Metro 控制面板的隐私设置下,此应用程序位于允许使用精确位置的应用程序列表下。更重要的是,该列表中启用了精确位置的其他应用从未提示我允许他们在第一次之后访问精确位置。
我在这里做错了什么,如何防止此对话框不断弹出?
编辑
使用await Geolocator.RequestAccessAsync(),只要不修改/重新编译exe,权限就会被缓存。
【问题讨论】:
标签: geolocation uwp windows-runtime windows-10 windows-10-universal