Add this to your build.gradle
file
repositories {
maven {
url "https://jitpack.io"
}
}
dependencies {
implementation 'com.github.babayevsemid:Gps-tracker:2.0.4'
//And Play services location
implementation 'com.google.android.gms:play-services-location:21.0.1'
}
Note: (AppCompatActivity, Fragment) Returns location if GPS is active, otherwise will prompt to enable it and return consequently Note: (Context) Works if GPS is active, otherwise will not function
val manager = GpsBuilder(this) // this: AppCompatActivity, Fragment or Context
.build()
manager.onNewLocationAvailable = { lat: Double, lng: Double ->
}
manager.onLastKnownLocation = { lat: Double, lng: Double ->
}
manager.onBackgroundNotAvailable = {
}
manager.onNotAvailable = {
}
manager.connect()
GpsManager manager = new GpsBuilder(this)
.build()
manager.onNewLocationAvailable = (lat, lng) -> {
return null;
};
manager.onLastKnownLocation = (lat, lng) -> {
return null;
};
manager.onBackgroundNotAvailable = () -> {
return null;
};
manager.onNotAvailable = () -> {
return null;
};
manager.connect()
val manager = GpsBuilder(this) // this: AppCompatActivity, Fragment or Context
.configDistance(1) // 1 meter
.configUpdateTime(2000) // 2 sec
.configTrackingEnabled(true)
.configOnResumeConnect(true)
.configOnPauseDisconnect(false)
.configDefaultLocation(42.235476235, 41.236453265) // default location
.configPriority(LocationRequestPriority.PRIORITY_HIGH_ACCURACY)
.build()
manager.onNewLocationAvailable = { lat: Double, lng: Double ->
}
manager.onLastKnownLocation = { lat: Double, lng: Double ->
}
manager.onBackgroundNotAvailable = {
}
manager.onNotAvailable = {
}
manager.connect()
GpsManager.gpsEnableLiveData.observeForever(aBoolean -> {
if (aBoolean)
//enabled
else
//disabled
});
GpsManager.gpsEnableLiveData.postValue(GpsPermission.isGpsEnabled(getApplicationContext()));
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
*.configWithBackgroundPermission(true)
* distance - 10; //10 Meter
* updateTime - 2000; //2 sec
* trackingEnabled - false;
* onResumeConnect - false;
* onPauseDisconnect - true;
* withBackgroundPermission - false;
* priority - PRIORITY_HIGH_ACCURACY;
- This will change when you get a location and you can use it anywhere
GpsManager.location;
- Check location permission
if(GpsPermission.checkLocation(getApplicationContext(), false)){
}
- Check background location permission
//boolean checkLocation(Context context, boolean withBackground)
if(GpsPermission.checkLocation(getApplicationContext(), true)){
}
- Check GPS is Enabled
//boolean isGpsEnabled(Context context)
if(GpsPermission.isGpsEnabled(getApplicationContext())){
}
- Full check location and gps is Enabled
if(GpsPermission.checkFullLocation(getApplicationContext(), false)){
}
- Request location permission
//MutableLiveData<Boolean> requestLocation(Context context, boolean withBackground)
GpsPermission.requestLocation(getApplicationContext(),false)
.observeForever(new Observer<Boolean>() {
@Override
public void onChanged(Boolean aBoolean) {
if(aBoolean){
//Allow
}else{
//Deny
}
}
});