【发布时间】:2011-07-15 07:36:35
【问题描述】:
我正在使用此页面中的类来获取我的 Windows Phone 上的当前位置坐标:http://www.codeproject.com/Articles/134982/A-helper-class-to-get-the-current-location-on-a-Wi
我不知道为什么我总是得到“未知”位置。我尝试了更简单的方法来获取位置,但没有成功。
我的 GPS 工作正常,因为我喜欢 Maps appand walk,而且我可以看到该地点正确移动。
我检查了 GeoCoordinateWatcher.Permisson 属性,其值为“Granted”。我已经在 WMAppManifest.xml 中有这一行 <Capability Name="ID_CAP_LOCATION"/>。
我不明白我上面给出的地址中的代码是这几行:
var immediate = new ImmediateLocation(x => location = x);
immediate.GetLocation();
GeoCoordinate location;
为什么使用后要声明位置?我之前声明过。有什么我应该知道的吗?
[编辑]
现在我已经理解了 lambda 表达式我得到了两个例外:
A first chance exception of type 'System.NullReferenceException' occurred in System.Device.dll
A first chance exception of type 'System.Reflection.TargetInvocationException' occurred in mscorlib.dll
这是堆栈跟踪
en System.Device.Location.GeoCoordinateWatcher.<>c__DisplayClass6.<OnPositionStatusChanged>b__4(Object _)
en System.Reflection.RuntimeMethodInfo.InternalInvoke(RuntimeMethodInfo rtmi, Object obj, BindingFlags invokeAttr, Binder binder, Object parameters, CultureInfo culture, Boolean isBinderDefault, Assembly caller, Boolean verifyAccess, StackCrawlMark& stackMark)
en System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, StackCrawlMark& stackMark)
en System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
en System.Delegate.DynamicInvokeOne(Object[] args)
en System.MulticastDelegate.DynamicInvokeImpl(Object[] args)
en System.Delegate.DynamicInvoke(Object[] args)
en System.Windows.Threading.DispatcherOperation.Invoke()
en System.Windows.Threading.Dispatcher.Dispatch(DispatcherPriority priority)
en System.Windows.Threading.Dispatcher.OnInvoke(Object context)
en System.Windows.Hosting.CallbackCookie.Invoke(Object[] args)
en System.Windows.Hosting.DelegateWrapper.InternalInvoke(Object[] args)
en System.Windows.RuntimeHost.ManagedHost.InvokeDelegate(IntPtr pHandle, Int32 nParamCount, ScriptParam[] pParams, ScriptParam& pResult)
我找到了这个,我不确定它是否与我的案例有关,但如果它可以帮助某人帮助我......
【问题讨论】:
-
你怎么知道它不起作用?我这样说是因为当位置发生变化时(在你给 ctor 的动作中)你通常应该有一些 UI 触发器
-
我会去看看行动是如何运作的。如果那时我仍然不知道如何解决这个问题,我会在这里发布。如果有人知道任何可以帮助我解决这个问题的链接,请分享:)
-
我已经用我的实际问题编辑了帖子
-
给我错误的行是这一行:_watcher.StatusChanged -= new EventHandler
(_watcher_StatusChanged);如果我将其注释掉,那么我可以处理 NullReferenceException 并且一切正常
标签: windows-phone-7 geolocation gps