在页面上检索位置打开

时间:2014-04-30 14:14:00

标签: windows-phone-8

我有一个页面,当它打开时,我想要检索手机的GeoLocation。 这是我的代码:

public partial class splash : PhoneApplicationPage
{
    public splash()
    {
        InitializeComponent();
    }
    protected override async void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
        StatusTextBlock.Text = "Ermittle Position ...";
        Geolocator geolocator = new Geolocator();
        geolocator.DesiredAccuracyInMeters = 5;
        try
        {
            Geoposition geoposition = await geolocator.GetGeopositionAsync(
                maximumAge: TimeSpan.FromSeconds(10),
                timeout: TimeSpan.FromSeconds(10)
                );
            LatitudeTextBlock.Text = geoposition.Coordinate.Latitude.ToString("0.000000");
            LongitudeTextBlock.Text = geoposition.Coordinate.Longitude.ToString("0.000000");
            StatusTextBlock.Text = "Done.";
        }
        catch (Exception ex)
        {
            if ((uint)ex.HResult == 0x80004004)
            {
                StatusTextBlock.Text = "GeoLocation im Device deaktiviert !";
            }
            else
            {
                StatusTextBlock.Text = "Sonstiger Fehler aufgetreten !";
            }
        }
        StatusTextBlock.Text = "Fertig ...";
    }

问题似乎是Geoposition geoposition = await geolocator.GetGeopositionAsync行。我将此处显示的OnNavigateTo声明更改为asyncasync await execution windows phone 8),但现在我的代码似乎等待“无休止”,因为"Fertig ...“永远不会写入我的TextBox。” / p>

任何想法如何解决我的问题?

1 个答案:

答案 0 :(得分:1)

请增加DesiredAccuracyInMeters并重试。使用50你会得到想要的结果,所需的精确度越小,它所用的时间就越多。

如果你真的希望这个位置准确,即精确度在5米,那么@Andre表示增加时间。希望这有帮助。