我正在使用 c# 在 Win 8 Metro App 上工作。
在我的应用程序中,我使用地理定位服务来获取用户位置的当前坐标。第一次启动应用程序时,系统会要求您提供权限。这一切都很好,我得到坐标没有问题。
现在,我想在权限更改后立即给用户一条消息。这该怎么做?
我正在使用 c# 在 Win 8 Metro App 上工作。
在我的应用程序中,我使用地理定位服务来获取用户位置的当前坐标。第一次启动应用程序时,系统会要求您提供权限。这一切都很好,我得到坐标没有问题。
现在,我想在权限更改后立即给用户一条消息。这该怎么做?
检查此文档: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.
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;