Android: невозможно получить путь к файлу на ActivityResult - PullRequest
0 голосов
/ 07 сентября 2018

Намерение выбрать файл:

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
            intent.addCategory(Intent.CATEGORY_OPENABLE);
            intent.setType("*/*");
            startActivityForResult(intent, FILE_REQUEST_CODE);

onActivityResultCode:

 @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode) {
            case FILE_REQUEST_CODE:
                if (resultCode == RESULT_OK) {
          Uri uri = data.getData();
                assert uri != null;
                String uriString = uri.toString();
                File myFile = new File(uri.getPath());
                String path = getPathFromUri(uri);         

    }
   }

}

Код для получения пути:

private String getPathFromUri(Uri uri) {
        String[] filePathColumn = { MediaStore.Files.FileColumns.DATA };
        Cursor cursor = getContentResolver().query(uri,filePathColumn, null, null, null);
        cursor.moveToFirst();
        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
        String Path = cursor.getString(columnIndex);
        cursor.close();
        return Path;
    }

Путь возвращается как ноль, я много чего пробовал file.getPath () тоже не работает ... чего мне не хватает

1 Ответ

0 голосов
/ 07 сентября 2018

есть ли у вас разрешение на чтение и запись во внешнем хранилище в AndroidManifest?

...