0

当我在我的应用程序中使用位置功能时,如果我想允许应用程序获取我的位置,我会在第一次开始时收到一个问题。

然后稍后我可以在魅力熊上设置此选项,而无需自己实施。

现在的问题:

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

我添加了一张图片,但它是德国版的 Windows 8。在此处输入图像描述

4

1 回答 1

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;
}

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

  • 未初始化
  • 禁用
  • 无法使用
  • 没有数据
  • 初始化
  • 准备好

如果您获得禁用状态,则表示用户禁用了位置服务权限。如果您获得其中之一,则意味着用户已启用位置服务权限。

文档中:

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

于 2013-05-27T19:26:51.270 回答