这个代码在其他手机中运行良好,并且在三星Galaxy s3和Android 4.0.3中也可以正常工作,但是在三星Galaxy S3中使用android 4.1.1不行,有什么想法吗?
问题是onLocationChanged方法不会被称为never。
返回的提供商是“网络”
/**
* @see android.app.Application#onCreate()
*/
@Override
public void onCreate() {
locationManager = (LocationManager) this.getSystemService(getApplicationContext().LOCATION_SERVICE);
String provider = getLocationProvider();
locationManager.requestLocationUpdates(provider, 0, 20, locationListener);
}
/**
* @see android.location.LocationListener
*/
LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
currentLocationUser = location;
if (onLocationListener != null) {
onLocationListener.onLocationChanged(location);
}
}
public void onStatusChanged(String provider, int status, Bundle extras) {
}
public void onProviderEnabled(String provider) {
}
public void onProviderDisabled(String provider) {
}
};
public String getLocationProvider() {
Criteria locationCriteria = new Criteria();
locationCriteria.setAccuracy();
return locationManager.getBestProvider(locationCriteria, true);
}
答案 0 :(得分:1)
我想在使用新时间请求更新之前使用LocationManager.removeUpdates()
建议。 在JELLYBEAN(4.1)之后,更新之间的最短时间不再只是一个提示。
有关此问题的更多信息,请参阅Location manager。
如下文所述
在Jellybean之前,minTime参数只是一个提示,有些 位置提供程序实现忽略它。 来自Jellybean和 此外,Android兼容设备必须同时观察这两者 minTime和minDistance参数。