我正在使用c#在Win 8 Metro应用程序中工作。
在我的应用程序中,我使用地理定位服务来获取用户位置的当前坐标。第一次启动应用程序时,系统会要求您提供权限。 这一切都很好,我得到的坐标没有问题。
现在,我希望在权限更改后立即向用户发送消息。 怎么做?
答案 0 :(得分:4)
查看此文档: http://msdn.microsoft.com/en-us/library/windows/apps/Hh465148
提供重新启用位置服务的用户界面
让您的应用提供用于重新启用位置服务的UI - 例如,刷新按钮,重新生成Geolocator对象并尝试再次获取位置信息。
如果用户在停用后重新启用位置访问权限,则表示该应用无法通知。 status属性不会更改,并且没有statusChanged事件。您的应用应该创建一个新的Geolocator对象并调用getGeopositionAsync以尝试获取更新的位置数据,或者再次订阅positionChanged事件。如果状态随后指示已重新启用位置,请清除您的应用先前通知用户已禁用位置服务的任何UI,并对新状态做出适当响应。
您的应用还应该再次尝试在激活时获取位置数据,或者当用户明确尝试使用需要位置信息的功能时,或者在任何其他适合的场景时使用。
答案 1 :(得分:1)
可以使用StatusChanged事件。
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;