获取设备位置Android

获取设备位置Android,android,kotlin,gps,location,Android,Kotlin,Gps,Location,我是android新手,但我目前的项目需要gps跟踪。我在网上搜索了一些答案,有些话题把我弄糊涂了。请告诉我,我不确定我是否理解: 我们需要在何处使用粗骨料,何时使用细骨料 使用NETWORK\u PROVIDER和GPS\u PROVIDER的主要区别是什么 融合定位提供程序提供定位技术并为您提供最佳位置。此api允许用户访问最佳位置,而无需在设备上使用太多电源 添加到您的清单中 <uses-permission android:name="android.permission.ACC

我是android新手,但我目前的项目需要gps跟踪。我在网上搜索了一些答案,有些话题把我弄糊涂了。请告诉我,我不确定我是否理解:

  • 我们需要在何处使用粗骨料,何时使用细骨料
  • 使用
    NETWORK\u PROVIDER
    GPS\u PROVIDER
    的主要区别是什么
融合定位提供程序提供定位技术并为您提供最佳位置。此api允许用户访问最佳位置,而无需在设备上使用太多电源

添加到您的清单中

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
获取最后一个已知位置

flpClient.getLastLocation()
        .addOnSuccessListener(this, new OnSuccessListener<Location>() {
            @Override
            public void onSuccess(Location location) {
                if (location != null) {
                    // Logic to handle location object
                }
            }
        });
flpClient.getLastLocation()
.addOnSuccessListener(此,新的OnSuccessListener(){
@凌驾
成功时的公共无效(位置){
如果(位置!=null){
//处理位置对象的逻辑
}
}
});
请查看api以获得进一步的解释

如果同时使用
网络\u提供商
GPS\u提供商
,则只需请求
访问\u FINE\u位置
权限,因为它包括对这两个提供商的权限。
访问\u位置的权限
仅允许访问
网络\u提供商

简言之,不同之处在于你得到的位置的详细程度

网络供应商确定用户使用手机发射塔、wifi接入点等的位置。在手机发射塔的情况下,考虑发射塔之间的距离和用户位置。此位置提供程序提供了更快的响应,但可能是模糊的

GPS提供商确定用户使用卫星的位置。这通常更精确,但需要更多的时间

注意:还有一个
被动_提供者
,它不主动请求位置,但能够窃听其他应用的请求,即当其他应用请求位置信息时,它会获取位置信息

flpClient.getLastLocation()
        .addOnSuccessListener(this, new OnSuccessListener<Location>() {
            @Override
            public void onSuccess(Location location) {
                if (location != null) {
                    // Logic to handle location object
                }
            }
        });