onSuccessListner после разрешения обрезки изображения - PullRequest
0 голосов
/ 14 октября 2018

Я получаю обрезку изображения следующим образом:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

            if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
                ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1);

//do some activity based on permission granted or declined.
            } else {
                CropImage.activity(mainImageURI)
                        .setGuidelines(CropImageView.Guidelines.ON)
                        .setAspectRatio(1,1)
                        .setAutoZoomEnabled(false)
                        .start(this);

                ;


            }

        }

Мой вопрос заключается в том, что я хочу выполнить некоторые действия сразу после того, как разрешение будет предоставлено или отклонено.В текущем сценарии я могу сначала предоставить разрешение, а затем снова щелкнуть изображение, которое я использую, и затем обрезать.Но я хочу, чтобы сразу после получения разрешения было одно действие, а в случае отказа - одно.

Ответы [ 2 ]

0 голосов
/ 14 октября 2018

Вы должны переопределить onRequestPermissionsResult в своей активности, чтобы получать уведомления при предоставлении разрешения:

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);

    if (requestCode == PERMISSIONS_CODE) {
        for (int i = 0; i < permissions.length; i++) {
            String permission = permissions[i];
            int grantResult = grantResults[i];

            if (permission.equals(Manifest.permission.READ_EXTERNAL_STORAGE)) {
                if (grantResult == PackageManager.PERMISSION_GRANTED) {
                    // TODO Open The Crop Activity
                } else {
                    // TODO Tell the user your app can't function properly 
                }
            } 
        }
    }
}
0 голосов
/ 14 октября 2018
@Override
public void onRequestPermissionsResult(int requestCode,
                                       String permissions[], int[] grantResults) {
    switch (requestCode) {
        case MY_PERMISSIONS_REQUEST_FOR_LOCATION: {
            // If request is cancelled, the result arrays are empty.
            if (grantResults.length > 0
                    && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                // permission was granted, yay! Do the
                // contacts-related task you need to do.

            } else {

                // permission denied, boo! Disable the
                // functionality that depends on this permission.
            }
            return;
        }

        // other 'case' lines to check for other
        // permissions this app might request
    }
}

Возможно, вам придется переопределить это в своей деятельности, чтобы обработать результат запроса

...