我是Android新手。我正在使用以下代码,但有时在位置已更改未调用且位置对象返回null ...或者有时它仅获得最接近的值但我需要与OLA cabs跟踪准确相同。
我的代码如下
MyLocationListener mll=new MyLocationListener();
LocationManager locationManager = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
0,
0,
mll
);
if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER))
{
Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null)
Log.e("TAG","LocationDetected ");
答案 0 :(得分:0)
位置可以主要由两种类型的提供者获得:
因此,您可以使用标准根据准确性,可用性和效率使用两者。这是我的项目代码的片段 -
criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setPowerRequirement(Criteria.POWER_LOW);
//get the best provider depending on the criteria
provider = locationManager.getBestProvider(criteria, true);
Location location = locationManager.getLastKnownLocation(provider);
为了更快,更准确地进行位置跟踪,您可以使用Google推荐的最新Google Play API。以下是我对Google Play / Fused API的最佳示例 - http://www.androidhive.info/2015/02/android-location-api-using-google-play-services/