我是android的新手,但是我当前的项目需要使用gps跟踪。我已经在网上搜索了一些答案,有些话题使我感到困惑。您能告诉我吗,我不确定我是否了解:
NETWORK_PROVIDER
和GPS_PROVIDER
的主要区别是什么? 答案 0 :(得分:1)
如果同时使用
NETWORK_PROVIDER
和GPS_PROVIDER
,则只需要请求ACCESS_FINE_LOCATION
权限,因为它包括两个提供者的权限。ACCESS_COARSE_LOCATION
的权限仅允许访问NETWORK_PROVIDER
。
因此,简而言之,区别在于您所获得位置的详细信息级别。
网络提供商确定使用手机信号塔,WiFi接入点等的用户位置。如果使用手机信号塔,则考虑信号塔之间的距离和用户的位置。该位置提供程序提供了更快的响应,但可能是模糊的。
GPS提供商确定使用卫星的用户的位置。这通常更精确,但是会花费更多时间。
注意:还有一个PASSIVE_PROVIDER
,它不会主动请求位置,但是能够窃听其他应用程序的请求,即其他应用要求时提供的位置信息。
答案 1 :(得分:0)
融合位置提供程序提供 location 技术并为您提供最佳位置。此 api 使用户无需使用即可访问最佳位置设备上的电量很大。
添加到您的清单
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
使用活动代码
private FusedLocationProviderClient flpClient;
flpClient = LocationServices.getFusedLocationProviderClient(this);
获取最近的已知位置
flpClient.getLastLocation()
.addOnSuccessListener(this, new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
if (location != null) {
// Logic to handle location object
}
}
});
查看api以获取进一步的说明https://developer.android.com/training/location/