我启用职位时如何获得活动?

时间:2013-05-27 18:49:15

标签: windows-8

当我在我的应用中使用位置功能时,如果我想让应用获取我的位置,我会在第一次启动时收到问题。

之后我可以在魅力熊上设置这个选项,而不是自己实现它。

现在的问题是:

如果用户将魅力栏中的此选项更改为true或false,我该如何捕捉事件?

我添加了一张图片,但是它是德语版的Windows 8。enter image description here

1 个答案:

答案 0 :(得分:0)

您需要使用GeoLocator StatusChanged事件来捕获位置服务更改。

这是一个C#示例。你没有标记编程语言,但你可以用这个来理解这个想法并使用你选择的语言。

Geolocator location;
protected override void OnNavigatedTo(NavigationEventArgs e)
{
    location = new Geolocator();
    location.StatusChanged += location_StatusChanged;
}

async void location_StatusChanged(Geolocator sender, StatusChangedEventArgs args)
{
    var new_status = args.Status;
}

您可以获得以下几种状态:

  • notInitialized
  • 禁用
  • 不可用的
  • 无数据
  • 初始化
  • 就绪

如果您获得已禁用状态,则表示该用户已停用位置服务权限。如果您获得其中一个,则表示用户已启用位置服务权限。

来自documentation

  

如果用户在禁用后重新启用位置访问权限,则表示没有   通知应用程序。 status属性不会改变   是没有statusChanged事件。您的应用应该创建一个新的Geolocator   对象并调用getGeopositionAsync以尝试获取更新的位置   数据,或再次订阅positionChanged事件。如果状态那么   表示该位置已重新启用,清除您的任何用户界面   应用程序先前已通知用户已禁用位置服务,   并适当回应新的状态。