Преобразовать активность во фрагмент для requestPermission - PullRequest
1 голос
/ 29 сентября 2019

Я собираюсь реализовать код во фрагменте. Какие изменения я должен сделать?Пожалуйста, сообщите мне, что делать.

Часть моего кода:

запрос Код доступа:

 private void requestPermission() {
    if 
 (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, 
    android.Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
        Toast.makeText(MainActivity.this, " Please allow this permission 
 in App Settings.", Toast.LENGTH_LONG).show();
    } else {
        ActivityCompat.requestPermissions(MainActivity.this, new String[] 
 {android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, 
   PERMISSION_REQUEST_CODE);
    }
}

checkPermission code:

private boolean checkPermission() {
    int result = ContextCompat.checkSelfPermission(MainActivity.this, 
  android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
    if (result == PackageManager.PERMISSION_GRANTED) {
        return true;
    } else {
        return false;
    }
}

onRequestPermissionsResultкод:

@Override
public void onRequestPermissionsResult(int requestCode, String 
 permissions[], int[] grantResults) {
    switch (requestCode) {
        case PERMISSION_REQUEST_CODE:
            if (grantResults.length > 0 && grantResults[0] == 
    PackageManager.PERMISSION_GRANTED) {
                Toast.makeText(MainActivity.this, "Permission Granted 
     Successfully! ", Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(MainActivity.this, "Permission Denied :( ", 
     Toast.LENGTH_LONG).show();
            }
            break;
    }
}

1 Ответ

0 голосов
/ 29 сентября 2019

добавить эту строку в начало фрагмента

public static final int PERMISSION_REQUEST_CODE = 1;

requestPermission code:

    private void requestPermission() {
    if
    (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(),
            android.Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
        Toast.makeText(getActivity(), " Please allow this permission in App Settings.", Toast.LENGTH_LONG).show();
    } else {
        ActivityCompat.requestPermissions(getActivity(), new String[]
                        {android.Manifest.permission.WRITE_EXTERNAL_STORAGE},
                PERMISSION_REQUEST_CODE);
    }
}

checkPermission code:

private boolean checkPermission() {
    int result = ContextCompat.checkSelfPermission(Objects.requireNonNull(getActivity()),
            android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
    if (result == PackageManager.PERMISSION_GRANTED) {
        return true;
    } else {
        return false;
    }
}

onRequestPermissionsResult code:

@Override
    public void onRequestPermissionsResult(int requestCode, String
            permissions[], int[] grantResults) {
        switch (requestCode) {
            case PERMISSION_REQUEST_CODE:
                if (grantResults.length > 0 && grantResults[0] ==
                        PackageManager.PERMISSION_GRANTED) {
                    Toast.makeText(getActivity(), "Permission Granted Successfully! ", Toast.LENGTH_LONG).show();
                } else {
                    Toast.makeText(getActivity(), "Permission Denied :( ",
                            Toast.LENGTH_LONG).show();
                }
                break;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...