0
沒有爲獲取當前位置下面的代碼:的LocationManager不更新的位置
final LocationManager manager=(LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener listener=new LocationListener() {
@Override
public void onLocationChanged(Location location) {
manager.removeUpdates(this);
Toast.makeText(MainActivity.this, "2", Toast.LENGTH_LONG).show();
if (location!=null) {
doSomeAction();
}
else {
Toast.makeText(MainActivity.this, LOCATION_IS_NULL_MESSAGE, Toast.LENGTH_LONG).show();
}
}
@Override
public void onProviderDisabled(String provider) {
manager.removeUpdates(this);
String newProvider=provider.equals(LocationManager.GPS_PROVIDER) ? LocationManager.NETWORK_PROVIDER : null;
if (newProvider==null) {
Toast.makeText(MainActivity.this, LOCATION_PROVIDERS_ARE_DISABLED_MESSAGE, Toast.LENGTH_LONG).show();
}
else {
manager.requestLocationUpdates(newProvider, 0, 0, this);
}
}
@Override
public void onProviderEnabled(String provider) {}
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {}
};
String provider=manager.isProviderEnabled(LocationManager.GPS_PROVIDER) ? LocationManager.GPS_PROVIDER :
LocationManager.NETWORK_PROVIDER;
Location location=manager.getLastKnownLocation(provider);
if (location!=null) {
doSomeAction();
}
else {
Toast.makeText(this, "1", Toast.LENGTH_LONG).show();
manager.requestLocationUpdates(provider, 0, 0, listener);
}
我看到吐司「1」每一次,但我從來沒有見過「2」敬酒,所以我的位置不會更新。請告訴我,我需要得到我的當前位置 - 我該如何解決我的問題?我使用網絡位置提供商。
你改變你的位置實際上極好的位置? – Stan
我在5米處改變了我的位置,但我相信如果沒有最後的已知位置,我會立即獲取當前位置,因爲我只需要獲取當前位置。 – user1841247
爲了確保它能夠正常工作,請嘗試模擬相當大的[模擬器中的位置更改](http://stackoverflow.com/questions/2279647/how-to-emulate-gps-location-in-the-android-emulator)。 – Stan