Не найдено действий для обработки намерений - android .intent.action.OPEN_DOCUMENT при использовании фрагмента - PullRequest
0 голосов
/ 16 апреля 2020

У меня проблема с моим android приложением; я хочу добавить документ из хранилища смартфона; Я нахожусь во фрагменте, это может быть проблемой, но я не знаю, как ее решить.

private void selectFile(){
    Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
    startActivityForResult(intent,READ_REQUEST_CODE);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(requestCode == READ_REQUEST_CODE && resultCode == Activity.RESULT_OK){
        if(data != null){
            Uri uri = data.getData();
            filePath = uri.getPath();
        }
    }
}

У меня также есть это, чтобы запросить разрешение:

if( ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
        requestPermissions(new String[]{ Manifest.permission.READ_EXTERNAL_STORAGE},PERMISSION_REQUEST_STORAGE);
    }

но это также сказал мне:

Не найдена активность для обработки намерения {act = android .intent.action.OPEN_DOCUMENT}

Как я могу решить ее?

1 Ответ

0 голосов
/ 16 апреля 2020

, если версия устройства больше, чем Build.VERSION_CODES.KITKAT, тогда используйте ACTION_OPEN_DOCUMENT, в противном случае используйте ACTION_GET_CONTENT

ACTION_OPEN_DOCUMENT, используйте только, если API Level 19 или позже. В противном случае используйте ACTION_GET_CONTENT на старых устройствах.

...