Windows phone 7 位置始终返回“;“未知”;

Windows phone 7 位置始终返回“;“未知”;,windows-phone-7,geolocation,Windows Phone 7,Geolocation,我刚刚在真正的设备上试用了我的第一个WP7应用程序。我的问题是,我对其中一个特性使用地理定位,但我总是得到未知的位置。 我不知道是否有任何方法可以授予我的应用程序位置权限,或者我是否遗漏了什么。 在手机设置中,位置服务已启用,地图应用程序在查找我的实际位置时不会出现任何问题。 我已经检查了GeoCoordinateWatcher.Permisson属性,其值为“已授予”。 我在WMAppManifest.xml中已经有了这一行 有什么解决办法吗 [编辑] 这是我的密码。在你告诉我这样做后,我添加

我刚刚在真正的设备上试用了我的第一个WP7应用程序。我的问题是,我对其中一个特性使用地理定位,但我总是得到未知的位置。 我不知道是否有任何方法可以授予我的应用程序位置权限,或者我是否遗漏了什么。 在手机设置中,位置服务已启用,地图应用程序在查找我的实际位置时不会出现任何问题。 我已经检查了GeoCoordinateWatcher.Permisson属性,其值为“已授予”。 我在WMAppManifest.xml中已经有了这一行

有什么解决办法吗

[编辑]

这是我的密码。在你告诉我这样做后,我添加了起始线,但我仍然有问题

 string location = "41,0";
 GeoCoordinateWatcher watcher = new GeoCoordinateWatcher();
 watcher.Start();
 var myPosition = watcher.Position;

 if (!myPosition.Location.IsUnknown) {
 location = myPosition.Location.Latitude + "," +  myPosition.Location.Longitude;

}等待位置服务准备就绪。您的地理坐标记录器有一个状态更改事件和另一个位置更改事件。您的代码应该如下所示

//this goes somewhere in your startup sequence
_geoCoordinateWatcher.StatusChanged += 
  new EventHandler<GeoPositionStatusChangedEventArgs>(_gcw_StatusChanged);
_geoCoordinateWatcher.PositionChanged += 
  new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(_gcw_PositionChanged);
_geoCoordinateWatcher.MovementThreshold = 50; //metres
_geoCoordinateWatcher.Start();

...

static void _gcw_StatusChanged(object sender, GeoPositionStatusChangedEventArgs e)
{
  if (e.Status == GeoPositionStatus.Ready)
    PhoneApplicationService.Current.State["CurrentLocation"] = 
      _geoCoordinateWatcher.Position.Location;
}

static void _gcw_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
{
  PhoneApplicationService.Current.State["CurrentLocation"] = e.Position.Location;
}
//这会出现在启动序列中的某个地方
_geoCoordinateWatcher.StatusChanged+=
新事件处理程序(状态已更改);
_地理坐标记录器位置更改+=
新事件处理程序(位置已更改);
_geoCoordinateWatcher.MovementThreshold=50//米
_geoCoordinateWatcher.Start();
...
静态无效_gcw_状态已更改(对象发送器、地理位置状态更改Deventargs e)
{
如果(e.Status==geoppositionstatus.Ready)
PhoneApplicationService.Current.State[“CurrentLocation”]=
_地理坐标记录器、位置、位置;
}
静态无效\u gcw\u位置已更改(对象发送器,地理位置更改Deventargs e)
{
PhoneApplicationService.Current.State[“CurrentLocation”]=e.Position.Location;
}
因为你似乎有点悲伤,我建议你先在状态改变事件中放一个消息框,这样你就可以知道它是否会在你的手机上触发,一旦你得到排序,试着改变位置等等


还有,你试过出去吗?你可能不会在里面得到GPS锁,而且手机发射塔的位置也不总是有效的。到外面去,避开高楼。如果你住在高层建筑中,可以到阳台上去,或者(最好)到屋顶上去。

你能提供你用来获取位置信息的代码吗?还有,您的WMAppManifest.xml是什么样子的?您是否对正在使用的GeoCoordinateWatcher实例调用了Start()?你也可以检查一下,看看这是否有意义。我已经编辑了这篇文章,向你展示了我的代码。我在本教程中基于它:我的清单是默认清单。感谢您的帮助。我一直在做其他的项目,我不得不放弃这个项目,但我又在做。我已经尝试过你的代码,但由于我是新手,我不知道如何声明VisualStudio抱怨的一些变量。我在谷歌上做了一个搜索,我来到了这个页面:我也没有得到这个类的任何结果。我控制每个函数,只输入构造函数和GetLocation。问题不在于GPS信号,因为手机中的其他应用程序工作正常