私のアプリには、位置精度をログアウトして地図上にマーカーを配置する位置リスナーがありますが、精度は常に 900 マーク前後であり、私の位置は実際の位置から 0.2 ~ 0.5 マイル離れています。Google マップを読み込むと、数メートル以内に現在地が表示されます。
正確な位置を確保するためにどのような方法がありますか? マニフェストにこれらの権限があります
<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 とモバイル ネットワークの場所もオンになっています。