BestLocationProvider

Mit diesem Library kann man, mittels sehr wenigen Zeilen Code, einfach Location Updates in einer App erhalten. Das Library erlaubt es schnell ein Update zu bekommen auch wenn dieses “alt” oder ungenau ist. Denn eine schlechte Location ist immer noch besser als keine. Es funktioniert also ähnlich wie in Google Maps wo einem zuerst schnell eine Location angezeigt wird, welche dann immer besser und genauer wird je nachdem welcher Provider (GPS oder Cell) eine weitere Location liefert.

Außerdem kann man Timeouts für Provider definieren um Akku zu sparen und welche man verwenden will.

SourceCode

Beispielimplementierung

Select Code
//init Listener
BestLocationListener mBestLocationListener = new BestLocationListener() {

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
Log.i(TAG, "onStatusChanged PROVIDER:" + provider + " STATUS:" + String.valueOf(status));
}

@Override
public void onProviderEnabled(String provider) {
Log.i(TAG, "onProviderEnabled PROVIDER:" + provider);
}

@Override
public void onProviderDisabled(String provider) {
Log.i(TAG, "onProviderDisabled PROVIDER:" + provider);
}

@Override
public void onLocationUpdateTimeoutExceeded(LocationType type) {
Log.w(TAG, "onLocationUpdateTimeoutExceeded PROVIDER:" + type);
}

@Override
public void onLocationUpdate(Location location, LocationType type,boolean isFresh) {
Log.i(TAG, "onLocationUpdate TYPE:" + type + " Location:" + mBestLocationProvider.locationToString(location));
mTvLog.setText("\n\n" + new Date().toLocaleString() + "\nLOCATION UPDATE: isFresh:" + String.valueOf(isFresh) + "\n" + mBestLocationProvider.locationToString(location) + mTvLog.getText());
}
};

//init Provider
BestLocationProvider mBestLocationProvider = new BestLocationProvider(this, true, true, 10000, 1000, 2, 0);

//start Location Updates
mBestLocationProvider.startLocationUpdatesWithListener(mBestLocationListener);

//stop Location Updates
mBestLocationProvider.stopLocationUpdates();