我使用以下代码(从其他SO帖子粘贴)来获取当前位置
public void getCurrentLocation() {
LocationManager locationManager;
String context = Context.LOCATION_SERVICE;
locationManager = (LocationManager) getSystemService(context);
Criteria crta = new Criteria();
crta.setAccuracy(Criteria.ACCURACY_FINE);
crta.setAltitudeRequired(false);
crta.setBearingRequired(false);
crta.setCostAllowed(true);
crta.setPowerRequirement(Criteria.POWER_LOW);
Log.d("gotloc","First Place");
String provider = locationManager.getBestProvider(crta, true);
Log.d("gotloc",provider);
try {
locationManager.requestLocationUpdates(provider, 0, 0,
new LocationListener() {
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onLocationChanged(Location location) {
Log.d("gotloc", "2nd7 place");
if (location != null) {
lat = location.getLatitude();
lng = location.getLongitude();
Log.d("gotloc", "3rd place");
if (lat != 0.0 && lng != 0.0) {
/* System.out.println("WE GOT THE LOCATION");
System.out.println(lat);
System.out.println(lng);
// */
Log.d("gotloc", lat+ "," + lng);
// return lat+","+lng;
}
}
}
});
}catch (SecurityException e){
Log.d("gotloc", "3rd place");
}
catch (Exception e){
Log.d("gotloc", "3rd place");
}
}
}
当我在我的Moto G3上使用它时它工作正常,我得到经度和经度但是当我在Moto X Play上使用它时,我得到0。我发现onLocationChanged
没有被执行
我没有任何例外。可能是什么问题?