android 如何使用fusedLocation获得良好的准确性?

2eafrhcq  于 2023-05-27  发布在  Android
关注(0)|答案(1)|浏览(190)

在我的应用程序中,我需要跟踪用户的位置。为此,我使用FusedLocation,每隔10秒询问一次位置。不幸的是,返回的位置具有500.0米或1640英尺的精度。在Android FusedLocation doc中,规定
精确到几英尺内的位置更新
我的请求设置为:

LocationRequest locationRequest = new LocationRequest();
    locationRequest.setSmallestDisplacement(10);
    locationRequest.setInterval(30000); // 30 s 
    locationRequest.setFastestInterval(10000); // 10 s
    locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

另外,我请求粗和细位置的许可。
如何才能获得更好的准确性?

tkclm6bt

tkclm6bt1#

也许你可以试着从NETWORK_PROVIDER询问位置,这帮助我解决了用户最后一次知道位置的问题。
我是这样处理的:

LocationManager locationManager;
locationManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 0, locationListener);
Location lastKnownLocation = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
LatLng userLocation = new LatLng(lastKnownLocation.getLatitude(), lastKnownLocation.getLongitude());

相关问题