0

我正在使用 c# 在 Win 8 Metro App 上工作。

在我的应用程序中,我使用地理定位服务来获取用户位置的当前坐标。第一次启动应用程序时,系统会要求您提供权限。这一切都很好,我得到坐标没有问题。

现在,我想在权限更改后立即给用户一条消息。这该怎么做?

4

2 回答 2

4

检查此文档:http: //msdn.microsoft.com/en-us/library/windows/apps/Hh465148

提供用于重新启用位置服务的 UI

让您的应用提供用于重新启用位置服务的 UI——例如,重新实例化 Geolocator 对象并尝试再次获取位置信息的刷新按钮。

  • 如果用户在禁用后重新启用位置访问,则不会通知应用程序。status 属性没有改变,也没有 statusChanged 事件。您的应用应创建一个新的 Geolocator 对象并调用 getGeopositionAsync 以尝试获取更新的位置数据,或再次订阅 positionChanged 事件。如果状态随后表明位置已重新启用,请清除您的应用先前通知用户位置服务已禁用的任何 UI,并对新状态做出适当响应。

  • Your app should also try again to get location data upon activation, or when the user explicitly tries to use functionality that requires location info, or at any other scenario-appropriate time.

于 2012-11-16T09:01:38.337 回答
1

StatusChanged 事件可用于此目的。

http://msdn.microsoft.com/en-us/library/windows/apps/windows.devices.geolocation.statuschangedeventargs.status.aspx

case Windows.Devices.Geolocation.PositionStatus.disabled:
     // The app doesn't have permission to access location,
     // either because location has been turned off.
     return "Your location is currently turned off. " +
         "Change your settings through the Settings charm " +
         " to turn it back on.";
     break;
于 2012-08-14T14:24:51.603 回答