在metro应用程序中更改权限时获取通知

时间:2012-08-14 13:16:35

标签: c# geolocation windows-8 windows-runtime

我正在使用c#在Win 8 Metro应用程序中工作。

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

现在,我希望在权限更改后立即向用户发送消息。 怎么做?

2 个答案:

答案 0 :(得分:4)

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

提供重新启用位置服务的用户界面

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

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

  • 您的应用还应该再次尝试在激活时获取位置数据,或者当用户明确尝试使用需要位置信息的功能时,或者在任何其他适合的场景时使用。

答案 1 :(得分: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;