如何处理用户启用位置&回到应用程序

时间:2014-08-13 12:52:29

标签: windows-phone-8 winrt-xaml

我的应用需要访问位置服务,因为我要求用户是否启用位置,如果用户说是,那么我打开位置设置。这是有效的。但是如何检测/处理用户从位置页面到我的应用程序页面的时间。

这是我的代码

private async Task<Geoposition> getCurrentLocation()
        {
            Geoposition position = null;
            Geolocator locator = new Geolocator() { DesiredAccuracyInMeters = 10 };
            var flag = true;
            try
            {
                position = await locator.GetGeopositionAsync(TimeSpan.FromHours(1), TimeSpan.FromSeconds(30));
                flag = false;
            }
            catch (Exception uae)
            {

            }
            if (flag)
            {
                await ShowLocationPage();
            }
        }

加载页面时调用的getCurrentLocation方法。如果它没有获得用户位置,则调用ShowLocationPage方法。

   private static async Task ShowLocationPage()
    {
        ContentDialog cd = new ContentDialog(){
            Content = "Application want to access your location. Would you like to turn on Location Services?",
            PrimaryButtonText = "Yes",
            SecondaryButtonText = "No"
        };
        var result = await cd.ShowAsync();            if (result == ContentDialogResult.Primary)
        {
          var x = await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings-location:"));
        }

    }

我的问题是如何检测用户从位置页面返回,因此我可以再次检查地理信息。

1 个答案:

答案 0 :(得分:0)

最好的方法是检查您的应用是否重新关注(或恢复)。 使用新的wp RT,这对wp SL有所改变。 在StackO回答中有点长的解释,但这里有一个非常完整的解释http://www.interact-sw.co.uk/iangblog/2013/07/24/return-xaml-store-app

几天前在Twitter上发表了一些关于它的讨论:https://twitter.com/rschu/status/498836593269305344