我正在寫一個代碼,帶來當前的位置,但它沒有給我的位置,因爲它從來沒有調用onLocationChanged()
。是否有任何方法來找到位置。onLocationChanged()從來沒有叫
mobileLocation在這種情況下是0,所以執行到else塊。
我的代碼是
public class FindLocation {
private LocationManager locManager;
private LocationListener locListener;
private Location mobileLocation;
private String provider;
public FindLocation(Context ctx){
locManager = (LocationManager) ctx.getSystemService(Context.LOCATION_SERVICE);
locListener = 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) {
System.out.println("mobile location is in listener="+location);
mobileLocation = location;
}
};
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, locListener);
if (mobileLocation != null) {
locManager.removeUpdates(locListener);
String londitude = "Londitude: " + mobileLocation.getLongitude();
String latitude = "Latitude: " + mobileLocation.getLatitude();
String altitiude = "Altitiude: " + mobileLocation.getAltitude();
String accuracy = "Accuracy: " + mobileLocation.getAccuracy();
String time = "Time: " + mobileLocation.getTime();
Toast.makeText(ctx, "Latitude is = "+latitude +"Longitude is ="+londitude, Toast.LENGTH_LONG).show();
} else {
System.out.println("in find location 4");
Toast.makeText(ctx, "Sorry location is not determined", Toast.LENGTH_LONG).show();
}
}
}
如果你檢查模擬器或設備? – rajeshwaran 2012-08-13 12:06:39
當我啓動它時,第一次沒有(真機),它不會調用onLocationChanged(),所以變量mobileLocation爲null。意思是有時它會得到位置,但不是在點擊時。 – 2012-08-13 13:23:10
儘管已經很晚了,但我希望這個評論可以幫助別人,請看這個鏈接:http://www.lengrand.fr/2013/10/onlocationchanged-is-never-called-on-android – SMHJamali 2017-03-07 20:39:10