我的应用需要访问位置服务,因为我要求用户是否启用位置,如果用户说是,那么我打开位置设置。这是有效的。但是如何检测/处理用户从位置页面到我的应用程序页面的时间。
这是我的代码
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:"));
}
}
我的问题是如何检测用户从位置页面返回,因此我可以再次检查地理信息。
答案 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