user6145907
user6145907

Reputation: 11

Check perrmision (gps) need stop function

I need set gps in my Android application. But funcion requestLocationUpdates required check perrmision in this way:

    locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
    if(ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this,
            Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)
    {
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_LOCATION);
        return;
    }
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);

If i remove return (from if) app crash. If i put return function requestLocationUpdates will not be called!

How fix it?

Upvotes: 0

Views: 37

Answers (1)

Ben-J
Ben-J

Reputation: 1125

You must not call requestLocationUpdates just after requestPermissions.

requestPermissions is an asynchronous call, "this" (your activity) is your listener

You have to implement in your activity:

 @Override
 public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
      //check if all the grantResult are equal to PackageManager.PERMISSION_GRANTED
 }

In that fonction check if the permission is accepted and if TRUE, then call your requestLocationUpdates.

Upvotes: 2

Related Questions