在 Windows 应用商店应用程序(Windows 8.1)中使用 GeoLocator 时出现“管道正在关闭”错误?

Posted

技术标签:

【中文标题】在 Windows 应用商店应用程序(Windows 8.1)中使用 GeoLocator 时出现“管道正在关闭”错误?【英文标题】:"The pipe is being closed" error when using GeoLocator in Windows Store App(Windows 8.1)? 【发布时间】:2016-03-04 15:31:12 【问题描述】:

我正在使用 Windows 8.1 应用程序,我正在使用下面提到的代码查找用户的当前位置。现在,当我使用蜂窝网络在平板电脑中运行我的应用程序时,应用程序崩溃了,但它在 Wifi 上运行良好。有人可以为此提出解决方案吗?

            geolocator = new Geolocator();
            geolocator.DesiredAccuracy = PositionAccuracy.Default;
            geolocator.DesiredAccuracyInMeters = 1000;
            geolocator.MovementThreshold = 5;
            geolocator.ReportInterval = 500;
            try
            
                Geoposition mygeoPosition = await geolocator.GetGeopositionAsync();
            
            catch(UnauthorizedAccessException ex)
            
                UserMessageUtil.ShowMessage("Location is disabled in Settings");
                await Launcher.LaunchUriAsync(new Uri("ms-settings-location:"));
            
            geolocator.PositionChanged += geolocator_PositionChanged;

我总是检查笔记本电脑,所以我过去没有遇到这个问题,但现在我有一台同时具有 3G 和 WIFI 连接的平板电脑,当我在平板电脑上运行应用程序并尝试获取当前位置时,错误来了.

更新

我有时也得到组或资源未处于正确状态以执行请求的操作。 (HRESULT 异常:0x8007139F) 在线错误

Geoposition mygeoPosition = await geolocator.GetGeopositionAsync();

当我连接到蜂窝网络

时,我遇到了这两个错误

【问题讨论】:

【参考方案1】:

从使用更大的移动阈值开始。大多数 GPS 设备的精度只有 15 米。将移动阈值设置为 5 可能太小并导致问题。

还可以看看使用位置精度枚举器之一:

geolocator.DesiredAccuracy = Windows.Devices.Geolocation.PositionAccuracy.high;

【讨论】:

@rbrunditt 我尝试添加这两个参数,但它仍然给了我错误。是否有可能因为我使用免费的 Bing Map 密钥而导致问题? 这与 Bing 地图无关。 Geolocation API 是与 Bing 地图无关的核心 Windows Phone 库。【参考方案2】:

这些都是非常低级的 Windows 错误代码。任何失败都与您的代码相去甚远,大致是设备驱动程序级别。或者它是中间软件层重复使用的错误代码,这是 WinRT 中非常常见的犯罪。您必须记住,网络中可能会出现很多很多问题,而且您并不总是能得到出色的诊断结果。嗯,几乎从来没有。

“管道正在关闭”是 ERROR_NO_DATA。该错误标识符很可能比消息更具代表性。

“组或资源未处于正确状态”为 ERROR_INVALID_STATE。同样,该标识符比消息更明智。

我的电话:您的蜂窝网络连接不稳定。要么是因为收音机参差不齐,要么是因为中间有蹩脚的反恶意软件。你可以很容易地消除后者。但前者总是会发生在某人的机器上。因此,请务必编写您的代码以应对此类网络事故,不要不要只是捕获 UnauthorizedAccessException。为 Exception 编写另一个 catch 并显示“我们很抱歉,服务暂时不可用”样式消息。只要用户知道,也许您可​​以通过记住以前的位置来创可贴。

【讨论】:

谢谢汉斯。如果设备没有 GPS 传感器或 GPS 传感器被禁用,是否有可能发生此错误? 是的,很有可能。如果它有一个正常工作的 GPS 传感器,那么它就不需要任何帮助。

以上是关于在 Windows 应用商店应用程序(Windows 8.1)中使用 GeoLocator 时出现“管道正在关闭”错误?的主要内容,如果未能解决你的问题,请参考以下文章

获取物理屏幕(显示)分辨率。 Windows 应用商店应用

win10怎么禁用应用商店推广功能

win10应用商店关闭工具

如何禁止win10系统应用商店自动更新

Windows 10自带UWP应用打不开怎么办

window10电脑里的应用商店打不开怎么办