-2
public void onClick(View v) {
    if(v.getId() == R.id.btnSave) {
        if (ActivityCompat.checkSelfPermission(getActivity(), android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
                != PackageManager.PERMISSION_GRANTED) {
            requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                    REQUEST_PERMISSION_STORAGE);
        } else {
            //do something
        }

}

public void onRequestPermissionsResult(int requestCode, String[] permissions,
                                       int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    if (requestCode == REQUEST_PERMISSION_STORAGE
            && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

    }

}

I try this code with build variant debug, function onRequestPermissionsResult is called But with build variant release, this function onRequestPermissionsResult not be called

Barbie Smile
  • 309
  • 1
  • 10
  • duplicate of https://stackoverflow.com/a/35996955/4853552 – Shubham Jain Oct 30 '18 at 08:55
  • Make sure you are calling `super.onRequestPermissionsResult(requestCode, permissions, grantResults);` in your activity if you have overridden this method. If it still doesn't work, try my library: https://github.com/nabinbhandari/Android-Permissions – Nabin Bhandari Oct 30 '18 at 08:56
  • I already calling super.onRequestPermissionsResult(requestCode, permissions, grantResults); in activity , but onRequestPermissionsResult also cannot called – Barbie Smile Oct 30 '18 at 09:02

1 Answers1

0
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    setLocationSendListener(this);
    takeRunTimePermission();

}

public void takeRunTimePermission() {
    ActivityCompat.requestPermissions(this,
            new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION},
            1);
}

@Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case 1: {

            // If request is cancelled, the result arrays are empty.
            if (grantResults.length > 0
                    && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                // permission was granted, yay! Do the
            } else {

                // permission denied, boo! Disable the
                Toast.makeText(this, "Permission denied", Toast.LENGTH_SHORT).show();
            }
            return;
        }

        // permissions this app might request
    }
}