Why I don't get user-prompt to turn on GPS?












0















I have a code using the Location API, and I set the required permission checks (Or so I thought), but when I launch my app, it starts with "Location" permission disabled by default and I have to go to Settings and manually set location permission for my app instead of having prompted upon first launching the app.



The code looks like:



public class MainActivity extends AppCompatActivity {
private FusedLocationProviderClient mFusedLocationClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);


if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
tv.setText("Not granted");
} else {
mFusedLocationClient.getLastLocation()
.addOnSuccessListener(this, new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
// Got last known location. In some rare situations this can be null.
if (location != null) {
// Logic to handle location object
TextView tv = (TextView) findViewById(R.id.tv);
tv.setText("Granted");

}
}
});

}
}
}









share|improve this question























  • You want a dialog to turn on GPS or you want a dialog for GPS permission?

    – Prithvi Bhola
    Nov 18 '18 at 10:18











  • First I want the GPS permission, because my app starts with permission automatically disabled.. and then if possible (If you can show me how) then turning on is also a good option.

    – TTnote
    Nov 18 '18 at 10:21













  • Please check the answer

    – Prithvi Bhola
    Nov 18 '18 at 11:50
















0















I have a code using the Location API, and I set the required permission checks (Or so I thought), but when I launch my app, it starts with "Location" permission disabled by default and I have to go to Settings and manually set location permission for my app instead of having prompted upon first launching the app.



The code looks like:



public class MainActivity extends AppCompatActivity {
private FusedLocationProviderClient mFusedLocationClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);


if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
tv.setText("Not granted");
} else {
mFusedLocationClient.getLastLocation()
.addOnSuccessListener(this, new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
// Got last known location. In some rare situations this can be null.
if (location != null) {
// Logic to handle location object
TextView tv = (TextView) findViewById(R.id.tv);
tv.setText("Granted");

}
}
});

}
}
}









share|improve this question























  • You want a dialog to turn on GPS or you want a dialog for GPS permission?

    – Prithvi Bhola
    Nov 18 '18 at 10:18











  • First I want the GPS permission, because my app starts with permission automatically disabled.. and then if possible (If you can show me how) then turning on is also a good option.

    – TTnote
    Nov 18 '18 at 10:21













  • Please check the answer

    – Prithvi Bhola
    Nov 18 '18 at 11:50














0












0








0








I have a code using the Location API, and I set the required permission checks (Or so I thought), but when I launch my app, it starts with "Location" permission disabled by default and I have to go to Settings and manually set location permission for my app instead of having prompted upon first launching the app.



The code looks like:



public class MainActivity extends AppCompatActivity {
private FusedLocationProviderClient mFusedLocationClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);


if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
tv.setText("Not granted");
} else {
mFusedLocationClient.getLastLocation()
.addOnSuccessListener(this, new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
// Got last known location. In some rare situations this can be null.
if (location != null) {
// Logic to handle location object
TextView tv = (TextView) findViewById(R.id.tv);
tv.setText("Granted");

}
}
});

}
}
}









share|improve this question














I have a code using the Location API, and I set the required permission checks (Or so I thought), but when I launch my app, it starts with "Location" permission disabled by default and I have to go to Settings and manually set location permission for my app instead of having prompted upon first launching the app.



The code looks like:



public class MainActivity extends AppCompatActivity {
private FusedLocationProviderClient mFusedLocationClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);


if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
tv.setText("Not granted");
} else {
mFusedLocationClient.getLastLocation()
.addOnSuccessListener(this, new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
// Got last known location. In some rare situations this can be null.
if (location != null) {
// Logic to handle location object
TextView tv = (TextView) findViewById(R.id.tv);
tv.setText("Granted");

}
}
});

}
}
}






android






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 18 '18 at 10:11









TTnoteTTnote

969




969













  • You want a dialog to turn on GPS or you want a dialog for GPS permission?

    – Prithvi Bhola
    Nov 18 '18 at 10:18











  • First I want the GPS permission, because my app starts with permission automatically disabled.. and then if possible (If you can show me how) then turning on is also a good option.

    – TTnote
    Nov 18 '18 at 10:21













  • Please check the answer

    – Prithvi Bhola
    Nov 18 '18 at 11:50



















  • You want a dialog to turn on GPS or you want a dialog for GPS permission?

    – Prithvi Bhola
    Nov 18 '18 at 10:18











  • First I want the GPS permission, because my app starts with permission automatically disabled.. and then if possible (If you can show me how) then turning on is also a good option.

    – TTnote
    Nov 18 '18 at 10:21













  • Please check the answer

    – Prithvi Bhola
    Nov 18 '18 at 11:50

















You want a dialog to turn on GPS or you want a dialog for GPS permission?

– Prithvi Bhola
Nov 18 '18 at 10:18





You want a dialog to turn on GPS or you want a dialog for GPS permission?

– Prithvi Bhola
Nov 18 '18 at 10:18













First I want the GPS permission, because my app starts with permission automatically disabled.. and then if possible (If you can show me how) then turning on is also a good option.

– TTnote
Nov 18 '18 at 10:21







First I want the GPS permission, because my app starts with permission automatically disabled.. and then if possible (If you can show me how) then turning on is also a good option.

– TTnote
Nov 18 '18 at 10:21















Please check the answer

– Prithvi Bhola
Nov 18 '18 at 11:50





Please check the answer

– Prithvi Bhola
Nov 18 '18 at 11:50












2 Answers
2






active

oldest

votes


















1














For asking permission I will suggest you use permission-dispatcher library.



https://github.com/permissions-dispatcher/PermissionsDispatcher



And to enable GPS:



fun locationSetup() {
LocationServices.getSettingsClient(application)
.checkLocationSettings(
LocationSettingsRequest.Builder()
.addLocationRequest(locationRequest)
.setAlwaysShow(true)
.build())
.addOnSuccessListener { /*Start location service*/ }
.addOnFailureListener {
if (it.error is ResolvableApiException) {
try {
it.error.startResolutionForResult(this@MainActivity, REQUEST_CHECK_SETTINGS)
} catch (sendEx: IntentSender.SendIntentException) {}
}
}
}





share|improve this answer































    0














    You are not calling requestPermissions() anywhere. Instead, you are calling tv.setText("Not granted");. If you want to request permissions, call requestPermissions(). See the documentation.






    share|improve this answer























      Your Answer






      StackExchange.ifUsing("editor", function () {
      StackExchange.using("externalEditor", function () {
      StackExchange.using("snippets", function () {
      StackExchange.snippets.init();
      });
      });
      }, "code-snippets");

      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "1"
      };
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function() {
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled) {
      StackExchange.using("snippets", function() {
      createEditor();
      });
      }
      else {
      createEditor();
      }
      });

      function createEditor() {
      StackExchange.prepareEditor({
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader: {
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      },
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      });


      }
      });














      draft saved

      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53359750%2fwhy-i-dont-get-user-prompt-to-turn-on-gps%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      1














      For asking permission I will suggest you use permission-dispatcher library.



      https://github.com/permissions-dispatcher/PermissionsDispatcher



      And to enable GPS:



      fun locationSetup() {
      LocationServices.getSettingsClient(application)
      .checkLocationSettings(
      LocationSettingsRequest.Builder()
      .addLocationRequest(locationRequest)
      .setAlwaysShow(true)
      .build())
      .addOnSuccessListener { /*Start location service*/ }
      .addOnFailureListener {
      if (it.error is ResolvableApiException) {
      try {
      it.error.startResolutionForResult(this@MainActivity, REQUEST_CHECK_SETTINGS)
      } catch (sendEx: IntentSender.SendIntentException) {}
      }
      }
      }





      share|improve this answer




























        1














        For asking permission I will suggest you use permission-dispatcher library.



        https://github.com/permissions-dispatcher/PermissionsDispatcher



        And to enable GPS:



        fun locationSetup() {
        LocationServices.getSettingsClient(application)
        .checkLocationSettings(
        LocationSettingsRequest.Builder()
        .addLocationRequest(locationRequest)
        .setAlwaysShow(true)
        .build())
        .addOnSuccessListener { /*Start location service*/ }
        .addOnFailureListener {
        if (it.error is ResolvableApiException) {
        try {
        it.error.startResolutionForResult(this@MainActivity, REQUEST_CHECK_SETTINGS)
        } catch (sendEx: IntentSender.SendIntentException) {}
        }
        }
        }





        share|improve this answer


























          1












          1








          1







          For asking permission I will suggest you use permission-dispatcher library.



          https://github.com/permissions-dispatcher/PermissionsDispatcher



          And to enable GPS:



          fun locationSetup() {
          LocationServices.getSettingsClient(application)
          .checkLocationSettings(
          LocationSettingsRequest.Builder()
          .addLocationRequest(locationRequest)
          .setAlwaysShow(true)
          .build())
          .addOnSuccessListener { /*Start location service*/ }
          .addOnFailureListener {
          if (it.error is ResolvableApiException) {
          try {
          it.error.startResolutionForResult(this@MainActivity, REQUEST_CHECK_SETTINGS)
          } catch (sendEx: IntentSender.SendIntentException) {}
          }
          }
          }





          share|improve this answer













          For asking permission I will suggest you use permission-dispatcher library.



          https://github.com/permissions-dispatcher/PermissionsDispatcher



          And to enable GPS:



          fun locationSetup() {
          LocationServices.getSettingsClient(application)
          .checkLocationSettings(
          LocationSettingsRequest.Builder()
          .addLocationRequest(locationRequest)
          .setAlwaysShow(true)
          .build())
          .addOnSuccessListener { /*Start location service*/ }
          .addOnFailureListener {
          if (it.error is ResolvableApiException) {
          try {
          it.error.startResolutionForResult(this@MainActivity, REQUEST_CHECK_SETTINGS)
          } catch (sendEx: IntentSender.SendIntentException) {}
          }
          }
          }






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 18 '18 at 11:49









          Prithvi BholaPrithvi Bhola

          1,090319




          1,090319

























              0














              You are not calling requestPermissions() anywhere. Instead, you are calling tv.setText("Not granted");. If you want to request permissions, call requestPermissions(). See the documentation.






              share|improve this answer




























                0














                You are not calling requestPermissions() anywhere. Instead, you are calling tv.setText("Not granted");. If you want to request permissions, call requestPermissions(). See the documentation.






                share|improve this answer


























                  0












                  0








                  0







                  You are not calling requestPermissions() anywhere. Instead, you are calling tv.setText("Not granted");. If you want to request permissions, call requestPermissions(). See the documentation.






                  share|improve this answer













                  You are not calling requestPermissions() anywhere. Instead, you are calling tv.setText("Not granted");. If you want to request permissions, call requestPermissions(). See the documentation.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 18 '18 at 13:29









                  CommonsWareCommonsWare

                  770k13818791931




                  770k13818791931






























                      draft saved

                      draft discarded




















































                      Thanks for contributing an answer to Stack Overflow!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53359750%2fwhy-i-dont-get-user-prompt-to-turn-on-gps%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      這個網誌中的熱門文章

                      Tangent Lines Diagram Along Smooth Curve

                      Yusuf al-Mu'taman ibn Hud

                      Zucchini