使用 Fused Location API 获取当前位置

前言

预订出租车后,您是否注意到出租车在前往您的地址时在道路上移动?有各种应用程序使用某种定位服务。使用 GPS 更新位置是一个非常酷的功能。汽车的移动图标(以 Uber 为例)看起来很酷,作为一名 Android 开发人员,我们都曾想过在我们的移动应用程序中使用这些类型的功能,但在集成此功能时出现了某种错误。

所以,不用担心,在这篇文章中,我们将学习如何使用Fused Location API通过手机自带的 GPS 来获取 Android 设备的准确位置。我们将使用 GPS 显示手机的当前位置,每当手机位置更新时,更新后的位置就会显示在应用程序上。那么,让我们开始吧。

在此之前

在继续编码部分之前,我们需要了解位置权限。

位置权限

如果您想获取用户的当前位置,则必须将位置权限添加到您的应用程序。Android 提供以下位置权限:

  1. ACCESS_COARSE_LOCATION: 通过在您的应用程序中添加它,允许您使用 WIFI 或移动蜂窝数据(或两者)来确定设备的位置。使用此权限的近似值接近城市级别。
  2. ACCESS_FINE_LOCATION:这会使用您的 GPS 以及 WIFI 和移动数据来获得尽可能精确的位置。通过使用它,您将获得用户的精确位置。
  3. ACCESS_BACKGROUND_LOCATION:这个权限是在Android 10 中引入的。所以,对于Android 10 或更高版本,如果你想在后台访问用户的位置,那么除了以上两个权限中的任何一个,你还需要添加ACCESS_BACKGROUND_LOCATION 权限。

另外,这里要注意的一件事是我们使用了危险的权限,所以我们需要明确要求用户授予权限。

因此,我们完成了先决条件,现在我们将学习如何借助示例获取当前位置。

例子

在本例中,我们将使用Fused Location API来获取更改后的位置,或者您可能会说,获取用户的当前位置。我们将使用LocationRequest用于从FusedLocationProviderApi.

除了获取更新的位置外,LocationRequest它还包括各种检索位置的方法,例如专业人士。其中一些方法是:

  • setInterval(long millis):这用于设置您想要检查位置更新的所需时间间隔。它以毫秒为单位。
  • setFastestInterval(long millis):用于设置位置更新的最快间隔。在许多情况下,这可能比您更快setInterval(long),因为如果设备上的其他应用程序以小于您的时间间隔触发位置更新,那么它将使用该更新。
  • setSmallestDisplacement(float minimumDisplacementMeters):这将设置位置更新之间的最小位移,即位置更新所需的最小位移。它以米为单位,默认值为 0。
  • setPriority(int priority):用于设置接收到的位置的优先级。可以是PRIORITY_BALANCED_POWER_ACCURACY(达到街区级别的准确性),也可以是PRIORITY_HIGH_ACCURACY(获得最准确的结果),也可以是PRIORITY_LOW_POWER(获得城市级别的准确性),也可以是PRIORITY_NO_POWER(在不提供的情况下获得最准确的信息)一些额外的力量)。

现在,按照以下步骤使用 Fused Location Provider 获取您的当前位置:

创建项目

  • 启动一个新的 Android Studio 项目
  • 选择空活动和下一步
  • 名称:Fused-Location-API-Example
  • 包名:com.mindorks.example.fusedloca
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>