Путь к Android видеофайлу из медиа магазина равен нулю

Я пытаюсь получить путь к видеофайлу для миниатюры видео. Я не уверен, почему он все еще становится нулевым после того, как я изменил на основе некоторых решений здесь. Версия андроида 6.0.1.

Пользователь нажимает кнопку с плавающим действием и вызывает галерею видео.

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.addNote);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent();
            intent.setType("video/*");
            intent.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(Intent.createChooser(intent, "Select Video"), REQUEST_TAKE_GALLERY_VIDEO);
        }
    });

Когда пользователь выбирает нужное видео из галереи, оно переходит к действиям, по которым оно будет отсортировано.

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {

        Uri uri = data.getData();
        Log.d(TAG, "Uri: " + uri);

        Log.d(TAG, "Uri authority: " + uri.getAuthority());

        String filemanagerstring = uri.getPath();
        Log.d(TAG, "filemanagerstring: " + filemanagerstring);

        String selectedImagePath = getPath(uri);
        Log.d(TAG, "selectedImagePath: " + selectedImagePath);
    }
}

Метод получения пути к видеофайлу.

public String getPath(Uri uri) {

    Cursor cursor = this.getContentResolver().query(uri, null, null, null, null);
    int idx = 0;

    //Source not from device capture or selection
    if (cursor == null) {
        return uri.getPath();
    } else {
        cursor.moveToFirst();
        idx = cursor.getColumnIndex(MediaStore.Video.VideoColumns.DATA),;
        if (idx == -1) {
            Log.d(TAG, "uri path: " + path);
            return uri.getPath();
        }
    }
    String path =  cursor.getString(idx);
    Log.d(TAG, "path: " + path);
    cursor.close();
    return path;
}

Результаты: я получил ноль (-1) и получил путь URI, это не правильный путь. Мне нужен полный путь к видеофайлу.

Uri: content://com.android.providers.media.documents/document/video%3A6174
Uri authority: com.android.providers.media.documents
filemanagerstring: /document/video:6174
**uri path: 16842794**
selectedImagePath: /document/video:6174

Ответы на вопрос(1)

Ваш ответ на вопрос