在我的应用程序中,我有一个位置监听器,它会记录位置精度并在我所在的地图上放置一个标记,但是精度始终在 900 标记附近,并且我的位置距离我实际所在的位置 0.2 到 0.5 英里。如果我加载谷歌地图,它会在几米之内得到我的位置。
有什么方法可以确保准确定位?我的清单中有这些权限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
这是我的听众
LocationListener searchUsingLocation = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
float accuracy = location.getAccuracy();
Log.d("FUApp", "Location changed: "+accuracy);
List<JSONObject> centres = sortVenuesByNearest(location);
try {
populateList(centres);
} catch (JSONException e) {
e.printStackTrace();
}
setRefreshActionButtonState(false, R.id.search_using_location);
}
@Override
public void onStatusChanged(String s, int i, Bundle bundle) {
}
@Override
public void onProviderEnabled(String s) {
}
@Override
public void onProviderDisabled(String s) {
}
};
Log.d("FUApp", "Starting request");
locationService.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 50, 5, searchUsingLocation);
编辑:我的手机设置,访问位置打开,GPS 卫星打开,Wi-Fi 和移动网络位置也打开。