2
到目前爲止,我一直在使用GoogleApiClient
獲取當前位置,但我剛剛注意到,使用LocationListener
與LocationManager
配合使用它會更簡單,因爲它甚至可以檢測用戶打開或關閉GPS服務的時間。如何使用LocationManager獲取初始位置?
但是我在初始化LocationManager
後獲取用戶的第一個位置時遇到問題。
LocationManager
有4位聽衆,但他們沒有一個會給你第一個位置。它確實有一個onLocationChanged
監聽器,但它只在您移動時激活。
這是我如何使用它:
// Init LocationManager (needed to track if GPS is turned on or not
locationManager = (LocationManager) getApplicationContext().getSystemService(LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
end of oncreate......
/*
LocationListener (Listening if GPS service is turned on/off)
*/
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onLocationChanged(Location location) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderDisabled(String provider) {
}
不,永遠不要使用此代碼。它有很多bug,包括它並不總是使用GPS,可能會返回過時的數據或null,並且它並不總是擁有一個位置,即使它說明了它。請參閱http://gabesechansoftware.com/location-tracking/瞭解詳細信息 –