前言
预订出租车后,您是否注意到出租车在前往您的地址时在道路上移动?有各种应用程序使用某种定位服务。使用 GPS 更新位置是一个非常酷的功能。汽车的移动图标(以 Uber 为例)看起来很酷,作为一名 Android 开发人员,我们都曾想过在我们的移动应用程序中使用这些类型的功能,但在集成此功能时出现了某种错误。
所以,不用担心,在这篇文章中,我们将学习如何使用Fused Location API通过手机自带的 GPS 来获取 Android 设备的准确位置。我们将使用 GPS 显示手机的当前位置,每当手机位置更新时,更新后的位置就会显示在应用程序上。那么,让我们开始吧。
在此之前
在继续编码部分之前,我们需要了解位置权限。
位置权限
如果您想获取用户的当前位置,则必须将位置权限添加到您的应用程序。Android 提供以下位置权限:
- ACCESS_COARSE_LOCATION: 通过在您的应用程序中添加它,允许您使用 WIFI 或移动蜂窝数据(或两者)来确定设备的位置。使用此权限的近似值接近城市级别。
- ACCESS_FINE_LOCATION:这会使用您的 GPS 以及 WIFI 和移动数据来获得尽可能精确的位置。通过使用它,您将获得用户的精确位置。
- 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

最低0.47元/天 解锁文章
256

被折叠的 条评论
为什么被折叠?



