1

很抱歉,如果这真的很简单(也未能在 Marshmallow 模拟器上安装 google play 服务,并且有点搞砸了!)。

我的目标是在 Visual Studio 2017 (15.6.3) 上的 Xamarin Android C# 项目中获取 GPS 数据。

我正在关注 Xamarin 位置服务演练(https://docs.microsoft.com/en-gb/xamarin/android/platform/maps-and-location/location#using-the-fused-location-provider)和源代码例子。我尝试过分别针对 Android 6.0(我的首选)以及 7.1 和 MonoAndroid6 和 MonoAndroid71。

我已经为 Xamarin.GooglePlayService.Location、.Maps 和所需的“基本”库(.Base、.Basement 和 .Tasks)安装了 NuGet 包 - 版本 32.961.0 和 42.1021.1(取决于目标)。

以下代码告诉我“找不到类型或命名空间名称'FusedLocationProviderClient'(您是否缺少 using 指令或程序集引用?”

private FusedLocationProviderClient fusedLocationProviderClient;

我已经使用对象浏览器来探索这些库,甚至没有看到 FusedLocationProviderClient(只是 FusedLocationProviderApi - 我也在 SO 上阅读过的内容已被弃用......)。

我应该使用“旧”定位服务 API 来定位 6.0,还是我错过了其他东西?

非常感谢。

4

2 回答 2

4

只需添加 NuGet 包 Xamarin.GooglePlayServices.Location

于 2018-08-07T04:27:20.423 回答
0

一个项目涉及三个 API 级别Xamarin.Android,一个是特定于 Xamarin 的,即一个Target Framework不要与应用程序清单Target Android Version中设置的混淆。targetSdkVersion

Target Framework– 指定在构建应用程序时使用哪个框架。此 API 级别由 Xamarin.Android 在编译时使用。

Minimum Android Version– 指定您希望应用支持的最旧 Android 版本。此 API 级别由 Android 在运行时使用。

Target Android Version– 指定您的应用程序打算在其上运行的 Android 版本。此 API 级别由 Android 在运行时使用。

将您的软件包设置Target Framework为最新和最好的(当前为 8.1), Target Android Version6.0(重新)安装您的软件包。

了解 Android API 级别:https ://docs.microsoft.com/en-us/xamarin/android/app-fundamentals/android-api-levels?tabs=vswin

于 2018-04-02T18:59:01.243 回答