2017-09-12 9 views
-1

指定されたURIを持つファイルのパスを取得できません。Uriでファイルのパスを取得

私はEditTextから読み込んだパスに従ってビデオを再生するビデオアプリケーションを持っています。

ACTION_GET_CONTENTを使用して、組み込みのファイルエクスプローラを開くことができるブラウズボタンを作成しました。

ファイルエクスプローラでクリックしたビデオがあれば、そのパスは自動的に私のEditTextに設定されます。

イムは、私は私のonActivityResult

public Boolean onActivityResult(int requestcode, int resultCode, Intent data){ 
    if(requestCode == RECEIVE_DATA){ 
    Uri uriEnd = data.getData(); 
    //here I am unsure of how to get the Path with the given Uri 
    //I am using SDK Build 24 Nougat 
    } 
    } 

私はuriEnd.getPathを呼び出すと()を呼び出す部分で失われました。私は奇妙なパスを取得します

私はこの質問が複数回尋ねられていることを知っています。

+0

このライブラリをお勧めしますか? https://github.com/Angads25/android-filepicker私はそれを使用して、それは私のファイルの問題 – cutiko

答えて

1

指定されたURIを持つファイルのパスを取得できません。

Uriはファイルではありません。

ACTION_GET_CONTENTを使用して、組み込みのファイルエクスプローラを開くことができるブラウズボタンを作成しました。

ACTION_GET_CONTENTには、「ファイルエクスプローラ」は一切含まれていません。

私はuriEnd.getPath()を呼び出します。私は奇妙なパスUriのスキームがfileある場合にのみ意味がありUri

getPath()を取得します。あなたのUriのスキームは、おそらくcontentです。パスはあなたとユーザーにとって無意味です。ユーザーにそれを示す価値はほとんどなく、EditTextに入れて編集する価値は少なくなります(編集結果が何かを指し示すことはないため)。

したがって、ユーザーにACTION_GET_CONTENTからUriを表示することを含まない別のUIを考え出すことをお勧めします。

+0

を解決したので、基本的に私は、ファイルエクスプローラに組み込まれている閲覧ボタンを取得しようとしています。私は私がユーザーが選んだファイルのパスをどのように得ることができるかについて私の頭を包み込むことはできません。私がそれをやっているやり方が間違っているなら、正しい方法が何であるか教えてください。これはちょうど最も簡単なアプローチのように思えました。 –

+0

@AlejandroSoto:「組み込みのファイルエクスプローラを開くための参照ボタンを取得しようとしています」 - 「ファイルエクスプローラ」はありません。最も近いのはストレージアクセスフレームワークUIで、ローカルファイルではないもの(Googleドライブ、ネットワークファイルサーバーなど)を探索します。 「ユーザーがファイルを選択していないため、ユーザーが選択したファイルのパスをどのように取得できるか、頭を悩ますことを除いてすべてを行うことができます。 – CommonsWare

+0

@AlejandroSoto:ユーザーをファイルシステムのローカルファイルに制限する場合は、[ライブラリを使用](https://android-arsenal.com/tag/35?sort=created)を使用して、独自の「ファイルエクスプローラ」を埋め込みます。スタイルのUIをアプリに追加します。 – CommonsWare

関連する問題