【问题标题】:Xamarin Forms Location with Full features具有完整功能的 Xamarin 表单位置
【发布时间】:2019-05-07 09:53:55
【问题描述】:

您好,我正在尝试以 Xamarin 形式构建一个对位置服务有很大依赖性的应用程序。

使用 Xamarin.Essentials 我能够获取位置,但在 Android 中,它给出了最后一个已知位置,有时它并不那么准确。

问题 1.

但我无法添加位置侦听器,以便一旦用户更改位置,我就能得到通知。

问题 2。 如何准确知道用户是否禁用了手机定位或应用定位?

请指导我..提前谢谢

【问题讨论】:

    标签: xamarin.forms xamarin.android xamarin.ios


    【解决方案1】:

    问题 #1

    我不知道,但我认为 Xamarin.Essentials 还没有位置侦听器功能,可能是错误的,但您可以使用来自 jamesmontemagno(也是 Xamarin.Essentials 的主要开发人员)的 plugin,这个插件可以像这样跟踪地理位置变化:

    CrossGeolocator.Current.IsListening
    

    问题 #2

    按照文档here,您会收到以下情况的异常:未授予权限或未启用/支持该位置

    try
    {
        var location = await Geolocation.GetLastKnownLocationAsync();
    
        if (location != null)
        {
            Console.WriteLine($"Latitude: {location.Latitude}, Longitude: {location.Longitude}, Altitude: {location.Altitude}");
        }
    }
    catch (FeatureNotSupportedException fnsEx)
    {
        // Handle not supported on device exception
    }
    catch (FeatureNotEnabledException fneEx)
    {
        // Handle not enabled on device exception
    }
    catch (PermissionException pEx)
    {
        // Handle permission exception
    }
    catch (Exception ex)
    {
        // Unable to get location
    }
    

    【讨论】:

    • 谢谢大佬.. 会尝试实现监听器并让你知道
    • 做到了.. 谢谢
    • 原谅重温这个问题,但是xamarin Essentials中还没有这个功能吗?
    • @Frnk 快速检查一下Docs,它似乎仍然没有那个功能
    猜你喜欢
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    • 2016-11-16
    • 2014-09-29
    • 2022-01-10
    相关资源
    最近更新 更多