TMH*_*TMH 1 android android-location
在我的应用程序中,我有一个位置监听器,它记录了位置的准确性,并在我所在的地图上放置了一个标记,但是精确度总是在900左右,我的位置在我实际上的0.2到0.5英里之间.如果我加载谷歌地图,它会在几米内获得我的位置.
有什么方法可以确保准确的位置?我在Manifest中拥有这些权限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Run Code Online (Sandbox Code Playgroud)
这是我的倾听者
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);
Run Code Online (Sandbox Code Playgroud)
编辑:此外我的手机设置,访问位置,GPS卫星通信,Wi-Fi和移动网络位置也在.
Phi*_*ard 10
Android试图掩盖我们硬件的现实,但实际上只有两个位置提供商:GPS和网络.GPS位置很慢,并非所有设备都有,但它是准确的.网络位置更快,几乎所有设备都支持,但准确性较低.
如果你知道你想要哪个提供商,最好明确指定它.您的应用程序可以与任一提供商合作,您可能想要让用户选择他想要使用的内容.不要依赖Android告诉你的东西,因为大多数便宜的设备都是可怕的配置,并且可能骗你.