【问题标题】:"The pipe is being closed" error when using GeoLocator in Windows Store App(Windows 8.1)?在 Windows 应用商店应用程序(Windows 8.1)中使用 GeoLocator 时出现“管道正在关闭”错误?
【发布时间】: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();

当我连接到蜂窝网络

时,我遇到了这两个错误

【问题讨论】:

    标签: c# windows-8.1 bing-maps


    【解决方案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 传感器,那么它就不需要任何帮助。
    猜你喜欢
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多