Как получить имя файла и реальный путь к файлу диска Google?

Я использую следующий код, чтобы получить имя файла и путь к файлам в Диспетчере файлов. Однако он не возвращает путь к файлам Google Диска. Любая идея, как получить фактический путь?

Мой код -

public String getFilePath() {
    if (uri.getScheme().equalsIgnoreCase("file")) {
        return uri.getLastPathSegment();
    }

    cursorLoader.setUri(uri);
    cursorLoader.setProjection(projections);
    Cursor cursor = cursorLoader.loadInBackground();
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Files.FileColumns.DATA);
    cursor.moveToFirst();
    String realPath = cursor.getString(column_index);
    cursor.close();

    if (realPath == null || realPath.isEmpty()) {
        return null;
    }

return null;
}

Ответ 1

Вы должны использовать URI. Через URI вы можете getContentResolver.query(theUriThatYouHave, null, null, null, null). Теперь, когда у вас есть курсор, вы можете проверить имена столбцов и т.д.

Для диска Google есть имя столбца _display_name. Это даст вам имя файла.

Теперь вы хотите получить доступ к файлу? Вы можете открыть InputStream в URI через getContentResolver().openInputStream(theUriThatYouHave).