Конвертировать внутренний Uri в файл в Android? - PullRequest
0 голосов
/ 08 октября 2019

У меня есть приложение, которое позволяет пользователю выбрать файл из средства выбора файлов. Проблема заключается в том, что когда я пытаюсь превратить этот Uri в файл, он создает что-то, что я не могу использовать (/document/raw:/storage/emulated/0/Download/CBTJourney-Backup/EntriesBackup1570487830108). Я бы хотел избавиться от всего до raw:, но правильным способом. Где бы я ни пытался скопировать этот файл, используя InputStream, он ничего не копирует. Как будто файл не существует. Есть идеи?

public void chooseDatabaseFile() {
    Intent intent = new Intent();
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    // Set your required file type
    intent.setType("*/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent, "Choose Database to Import"),GET_FILE_PATH);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == GET_FILE_PATH && data != null) {
        if(resultCode == RESULT_OK){
            Uri currFileURI = data.getData();
            if(currFileURI == null) {
                return;
            }
            else{
                String databasePath = currFileURI.getPath();
                // TODO: Determine if actual database
                importDatabase(new File(databasePath));
                // File produces "/document/raw:/storage/emulated/0/Download/CBTJourney-Backup/EntriesBackup1570487830108"
            }
        }
    }
}

1 Ответ

0 голосов
/ 08 октября 2019

Вы пытались изменить свой mimetype?

В противном случае взгляните на:

Конвертировать файл: Uri в файл в Android

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...