Introduction: Turn on GPS Programmatically in Android 4.4 or Higher

Picture of Turn on GPS Programmatically in Android 4.4 or Higher

Hello friends

As we know Turing on GPS in older Android was very easy but in 4.4 or in higher version we can't turn on GPS directly due to security reasons ,but we can turn on indirectly.

So i am going to teach you how to do that

Let's Start................

Step 1: Step-1

Picture of Step-1

Now open the android studio and click on new project....

Step 2:

Picture of

Now change name of application whatever you want.

My app name is GPSON

Step 3:

Picture of

Now select minimum Android version you want to target.

Step 4:

Picture of

Now click on next button

Step 5:

Picture of

Now click on finish

Step 6:

Picture of

Now GUI will open,as show picture....

Step 7:

Picture of

Now go to

file => project structure => app => Dependencies

now click on add Library dependencies

now add this line and click ok.

Step 8:

Picture of

Now just add this code into manifest file as shown in figure

<meta-data android:name=""

Step 9:

now just add following code in manifest file but outside of application block.....

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

Step 10:

Picture of

Now just copy and paste following code outside oncreate method.....

private GoogleApiClient googleApiClient;

Now just copy and paste following code in oncreate.....

if (googleApiClient == null) {
googleApiClient = new GoogleApiClient.Builder(getApplicationContext()) .addApi(LocationServices.API) .build(); googleApiClient.connect();

LocationRequest locationRequest = LocationRequest.create(); locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); locationRequest.setInterval(30 * 1000); locationRequest.setFastestInterval(5 * 1000); LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder() .addLocationRequest(locationRequest);

// **************************

builder.setAlwaysShow(true); // this is the key ingredient

// **************************

PendingResult result = LocationServices.SettingsApi .checkLocationSettings(googleApiClient,; result.setResultCallback(new ResultCallback()



public void onResult(LocationSettingsResult result)


final Status status = result.getStatus();

final LocationSettingsStates state = result .getLocationSettingsStates();

switch (status.getStatusCode())


case LocationSettingsStatusCodes.SUCCESS:


case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:

try {

status.startResolutionForResult(MainActivity.this, 1000);

} catch (IntentSender.SendIntentException e)




case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:





googleApiClient = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();

Step 11:

Picture of

Now just connect phone to pc and turn on USB debugging mode in mobile and click on run in android studio.

Step 12:

Picture of

Now you can see that a dialog box will open when you start the app......



JonahT4 (author)2016-12-13

thanks, very nice!! i only had to face adding (not and all other gradle stuff. In code there is some problem with setResultCallback: in onResult an argumaent should be with type Result (not LocationSettingsResult), you can cast it afterwards. My only unsolved problem with turning GPS off, how can i do it???

JasurbekA (author)JonahT42017-08-05

Hello. Did you find a solution for turning off gps programmatically? If yes, Can you please share it with me via email?

DonD110 (author)2017-06-20

thank you so much.... it working grate

FazellN (author)2017-03-06

you are turning on GPS with runtime permission and show a dialog box to get access.

i want know is there any way to turn on GPS with out any dialog box and interface. how to turn on GPS in background on marshmallow?

bhavik28 (author)2016-11-26

It saved my day and this was what I was looking for. But the only
problem I'm facing is onActivityResult I'm trying to get location but
still it returns me 0.0 for both Latitude and Longitude. Can you help me
with that part?

About This Instructable




Bio: Hello My name is Prayag Nao.I am a tech enthusiastic person who does not follow reality,instead I create reality.I am sharing some ... More »
More by prayag nao:How to Change or Customize Windows 7/8 Boot Screen Smart Light LampHow to Change Blue Color of Facebook to Your Favorite Color..?
Add instructable to: