繁体   English   中英

用于Xamarin表单的Geolocator插件

[英]Geolocator plugin for xamarin forms

我正在尝试使用Xamarin表单开发移动应用,而该应用的一部分是获取用户的GPS位置。

但是当我运行应用程序时,我收到此异常消息

此组件的便携式版本中未实现此功能。 您应该从主应用程序项目中引用NuGet包,以便引用特定于平台的实现。

我试图找到一个解决方案,但没有用。 有什么建议吗?

我将此权限添加到android应用程序:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

try
{
    var locator = CrossGeolocator.Current;
    locator.DesiredAccuracy = 100;
    var position = await locator.GetPositionAsync(TimeSpan.FromSeconds(20), null, true);
}
catch (Exception exception)
{
    Debug.WriteLine(exception.Message);
    // throw;
}

可能的解决方案

根据作者的文档 ,您需要为Xamarin.Android安装Current Activity Plugin 并且在MainActivity.cs有以下代码行。

public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
    protected override void OnCreate(Bundle bundle)
    {
        // some code
        CrossCurrentActivity.Current.Init(this, bundle);
        LoadApplication(new App());
    }

由于您的演示项目正在.Net 4.5上运行,因此无法尝试。 您可以仔细阅读作者的文档,然后重试。

我的建议

我看了您正在使用的Github页面GeolocatorPlugin 作者指出:

现在是时候使用Xamarin.Essentials了,它在一个优化的软件包中提供了30多个跨平台的本机API。 我与一个了不起的开发人员团队一起开发了这个新库,强烈建议您查看

因此,您应该改用Xamarin.essentials插件。 这是Microsoft 的文档 ,如何使用该插件中的Geolocation

我也回答了类似的问题,您可能需要参考如何以xamarin形式获取设备的gps位置

经过几次尝试,我通过使用其他nuget软件包将xamarin.Forms更新为最新版本来解决了该问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM